<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.appian.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Deployment Automation</title><link>https://community.appian.com/success/w/guide/3328/deployment-automation</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Deployment Automation</title><link>https://community.appian.com/success/w/guide/3328/deployment-automation</link><pubDate>Tue, 23 Apr 2024 13:21:43 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43c6339b-3b7e-4b44-ba4b-4a8c46753052</guid><dc:creator>Appian Max Team</dc:creator><comments>https://community.appian.com/success/w/guide/3328/deployment-automation#comments</comments><description>Current Revision posted to Guide by Appian Max Team on 4/23/2024 1:21:43 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian provides several DevOps tools to automate the &lt;a href="https://docs.appian.com/suite/help/latest/devops-with-appian.html#deploy" rel="noopener noreferrer" target="_blank"&gt;deployment of Appian applications&lt;/a&gt; such as Compare &amp;amp; Deploy and Deployment APIs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://docs.appian.com/suite/help/latest/Deploy_to_Target_Environments.html#prodlink-external-deployment-apis"&gt;Deployment APIs&lt;/a&gt; offer a set of API&amp;nbsp;endpoints that allow you to inspect and deploy applications, packages, import customization files, plug-ins, and execute database scripts.&amp;nbsp;These APIs allow you to programmatically trigger deployments and integrate your Appian release into an automated pipeline. You can set up your pipeline once and run it the exact same way for all future deployments, saving time and avoiding manual errors. It is recommended to use the Deployment APIs whenever possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The tools described in this play offer a few alternatives to Appian base product features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tightly integrate with a version control system to store and retrieve package files using the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Automated Versioning Manager (AVM)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Programmatically deploy Admin Console settings and applications using the &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) plug-in&lt;/a&gt;&amp;nbsp;and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="automated_versioning_manager"&gt;Automated Versioning Manager&lt;/h2&gt;
&lt;h3 id="summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;The Automated Versioning Manager - available on the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt; - is a tool that helps managing Appian applications and database DDL files in a version control system. Given an Appian application ZIP file, the Automated Versioning Manager performs the following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;It unzips the application and organizes the artifact XML files in the repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It automates the check-in and checkout operations with the version control system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It generates application packages for import in Appian based on the contents of the repository and a range of changes to include.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal of this tool is to facilitate the adoption and usage of a version control system to perform configuration management of the Appian applications and database DDL files.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/1374.deployment_5F00_automation_5F00_00.png" /&gt;&lt;/div&gt;
&lt;h3 id="features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Version Control integration (Git, SVN)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supports Appian applications and patches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate import package from hash ranges&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Folder Listener to add contents to Version Control&lt;/li&gt;
&lt;li&gt;Supports GitHub, GitLab, and BitBucket for Version Control&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage"&gt;Usage&lt;/h3&gt;
&lt;p&gt;The automated versioning tool is a script to be run from the command line or terminal. It contains a wrapper for Windows (version-application.bat) and Linux (version-application.sh) systems. This document will first discuss how to use the tool in general, and then discuss use cases to give concrete examples. All parameters can be passed either on the command line or in the properties file.&lt;/p&gt;
&lt;h3 id="script_execution"&gt;Script Execution&lt;/h3&gt;
&lt;p&gt;To run the script, open a command window and navigate to the directory where the automated versioning scripts are located. They are named version-application.bat or version-application.sh.&lt;/p&gt;
&lt;p&gt;Use the -h or -help parameters to view the help menu within the script. The parameters are described here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Required Parameters (required for all four actions: addContents, buildAllApps, buildSingleApp, buildMultipleApps, and updateLocalRepo)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-action - Selects which action of the script to run. Acceptable values are: addContents, updateLocalRepo, buildAllApps,&amp;nbsp;buildSingleApp, and&amp;nbsp;buildMultipleApps. Each action is detailed in the use cases below.&lt;/li&gt;
&lt;li&gt;-vc_username -The username associated with the version control (Git or SVN) account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-vc_password -Please check the Security Settings of the version control account. If you have 2-factor authentication enabled, the password requires the version control account token. If you do NOT have 2-factor authentication enabled, the password is the one associated with the version control account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for addContents action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-application_path - The path on your filesystem where the application ZIP is located.&lt;/li&gt;
&lt;li&gt;-admin_console_path - The path on your filesystem where the admin console ZIP file is located.&lt;/li&gt;
&lt;li&gt;-ddl_path - List of comma-separated paths for the DDL files to be included in the deployment package.&lt;/li&gt;
&lt;li&gt;-flyway_path&amp;nbsp;- List of comma-separated paths for the directories to execute DB migrations via Flyway.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;. To learn how&amp;nbsp;the Automated Import Manager&amp;nbsp;uses Flyway, refer to &lt;a href="#aim_features"&gt;AIM Features&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-ddl_ds - List of comma-separated datasources associated with the provided DDL files. Must provide the same number of entries as number of DDL files specified with the -ddl_path option or number of directories specified with the -flyway_path option. &lt;strong&gt;NOTE: the order of the specified datasource names must match the order of the script paths specified.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-uuid - The UUID of the application to which the contents of the application should be added. This option is only used if deploying a patch application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- The&amp;nbsp;name of the application to which the contents of the application should be added. This option is only used if deploying a&amp;nbsp;patch&amp;nbsp;application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-commit_message - The message that will be associated with the commit. If not included, a default commit message Committed by @username is provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildAllApps&amp;nbsp;action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-start_hash - Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit. &lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash - End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildSingleApp action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid - The UUID of the application you want to build.&lt;/li&gt;
&lt;li&gt;-application_name - The name of the application you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildMultipleApps action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid&amp;nbsp;- Comma separated list of UUIDs of the applications you want to build.&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- Comma separated list of names of the applications that you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update&amp;nbsp;- Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for updateLocalRepo action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are no additional options (other than required options) for updateLocalRepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Additional Parameters&lt;/strong&gt; - These parameters are REQUIRED, and may be specified here or in the properties file (described in the following section). If they are specified in both locations, the parameters specified in the command line take precedence.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-version_control_type - The version control type used, either GIT or SVN.&lt;/li&gt;
&lt;li&gt;-local_repo_path - The path on the filesystem where the local repository is located. All files on the remote repository are cloned to this path. Example: C:\\MyFiles\\ChangeManagementRepo. &lt;strong&gt;NOTE: if using Windows, be sure to include double forward slashes (as seen in the example) for path separation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-appian_objects_repo_path - Path to the folder containing the Appian objects in the repository. This path is relative to the path of the local repository. If not specified, the Appian objects are checked out to and committed from the root of the local repository path.&lt;/li&gt;
&lt;li&gt;-repo_url - The URL that defines the remote repository. Example: https://github.com/git-username/project-name.git, svn+ssh://svn.code.sf.net/p/project-name/code&lt;/li&gt;
&lt;li&gt;-package_path - &lt;em&gt;For buildAllApps,&amp;nbsp;&lt;em&gt;buildSingleApp, and&amp;nbsp;&lt;em&gt;&lt;em&gt;buildMultipleApps&lt;/em&gt;&lt;/em&gt;&amp;nbsp;&lt;/em&gt;only.&lt;/em&gt; The path on the filesystem where packages are generated. Must include filename of package.&lt;/li&gt;
&lt;li&gt;-branch_name - Branch to check out and use (if not master)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="configuring-using-the-properties-file"&gt;Configuring using the Properties File&lt;/h3&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the configuration file version-manager.properties. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;In case an option is specified both on the command line and in the properties file, the command line value takes precedence and is used.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false &amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;p&gt;If used, the property&amp;nbsp;&lt;code&gt;appianObjectRepoPath&lt;/code&gt;&amp;nbsp;must not reference a file path more than one level below the root directory of the repository. Ex.&amp;nbsp;appianObjectRepoPath =&amp;nbsp;/appian/objects&amp;nbsp;is an acceptable configuration but&amp;nbsp;appianObjectRepoPath = /appian/folder/objects is not valid.&lt;/p&gt;
&lt;h3 id="use-cases"&gt;Use Cases&lt;/h3&gt;
&lt;h4 id="1-new-developer-joins-team-updatelocalrepo"&gt;#1: New developer joins team (updateLocalRepo)&lt;/h4&gt;
&lt;p&gt;In this use case, a new developer has joined the team and wants to get a copy of all the work completed so far. The developer should:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Update version-manager.properties with the appropriate fields. See the &lt;a href="#script_execution"&gt;Script Setup&lt;/a&gt; section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;updateLocalRepo&lt;/strong&gt; as the action flag. The developer must provide the username and password for authenticating against their version control system (-vc_username, -vc_password).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action updateLocalRepo -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, the developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;h4 id="2-developer-adds-artifacts-to-the-repository-addcontents"&gt;#2: Developer adds artifacts to the repository (addContents)&lt;/h4&gt;
&lt;p&gt;In this use case, the developer on a team has been working in the development environment and has changes he wishes to add to the repository. The changes may be a new application or a patch to an existing application. Note: the repository serves as a record of changes, and can be thought of as an additional Appian environment. The steps involved are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the Appian development environment, create an application (or a patch) that contains the changed objects.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Export those changes and download the application ZIP file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;addContents&lt;/strong&gt; as the action flag. The developer must provide the path of the ZIP file they exported (-application_path) from Appian in step 2. They must also provide the username and password for authenticating their version control system (-vc_username, -vc_password). &lt;strong&gt;NOTE: these are NOT Appian credentials.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Optional: if the application specified for -application_path is a patch, update the -uuid option to specify the parent application&amp;rsquo;s uuid. &lt;em&gt;The script will exit with error if a patch application ZIP is provided but no uuid is passed in.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Optional: if DDL scripts have been modified, specify the path(s) and their associated JDBC datasource names. NOTE: The same number of DDL scripts and datasource names must be entered into the script, even if the datasource is the same for all scripts. For example: the developer wishes to add two ddl scripts located at C:\DDLs\script1.sql and C:\DDLs\script2.sql. They do so by setting the -ddl_path option as C:\DDLs\script1.sql,C:\DDLs\script2.sql If both scripts are to be executed on jdbc/AppianDS, they must set the -ddl_ds option as jdbc/AppianDS,jdbc/AppianDS. Note that the datasource name is passed in &lt;strong&gt;&lt;em&gt;twice&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: include a custom commit message using the -commit_message option&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="caution"&gt;WARNING: It is HIGHLY recommended that DDL scripts are developed INCREMENTALLY. That is, do not modify existing DDL scripts - instead, create new scripts that only contain the commands the designer wishes to execute.This is because if the designer updates an existing DDL script, all lines in the script will be executed. This can lead to data integrity issues if not managed properly. PLEASE EXERCISE CAUTION WHEN MODIFYING EXISTING DDL SCRIPTS. Example: if the designer modifies a script that contains commands to drop and recreate a table, the script will drop and recreate the table even if the designer did not modify that section.&lt;/div&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action addContents -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -application_path &amp;quot;C:\App.zip&amp;quot; -ddl_ds jdbc/AppianAnywhere -ddl_path “C:\script1.sql” -commit_message “Adding account executive record”&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When the script is executed, three things occur:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The application ZIP is unzipped and placed into the local repository, and the DDL files are placed into a ddl_files folder within the local repository. If the -uuid option is selected, the appropriate application xml file is updated.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The changes are committed (and pushed, if using Git) to the remote repository.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When the package is imported into Appian, all lines within script1.sql will be executed and contents within the application ZIP are imported.&lt;/p&gt;
&lt;p&gt;Using Folder Listener:&lt;/p&gt;
&lt;p&gt;Alternatively, instead of running the script, the developer can execute&amp;nbsp;avm-folder-listener-&amp;lt;os&amp;gt;&amp;nbsp;in the&amp;nbsp;folder-listener&amp;nbsp;directory. The following command prompt will appear:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x960/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png" /&gt;&lt;/div&gt;
&lt;p&gt;The developer will provide the directory that the application or patch ZIPs will be dropped into as well as the directory of the automated versioning manager tool. Otherwise, the default directories will be used.&lt;/p&gt;
&lt;p&gt;Once setup, the developer can drag the desired application ZIP into the specified directory and the application ZIP will be versioned in their GIT repository. This is assuming that all necessary fields have already been configured in the file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;p&gt;If the developer is supplying a patch ZIP, the console will prompt the developer for the associated application uuid or name. Once supplied, the patch will be deployed to the specified environment in the&amp;nbsp;file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;h4 id="3-build-master-generates-new-rc-deployment-package-buildpackage"&gt;#3: Build master generates new RC deployment package (buildAllApps)&lt;/h4&gt;
&lt;p&gt;In this use case, all additions made by the team have been incorporated into the remote repository and have gone through sufficient testing. The build master is now ready to promote a new package to the higher environment. The new package should include all additions and changes since the last deployment. The build master will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;(If not done previously) Update version-manager.properties with the appropriate fields. See the Script Setup section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;buildAllApps&lt;/strong&gt; as the action flag. The build master must provide the username and password for authenticating against their version control system (-vc_username, -vc_password). To get a specific set of changes, input a value for the -start_hash option and the -end_hash option. This will generate the package with all new and changed files between the two hash options.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;NOTE: the package will &lt;strong&gt;NOT&lt;/strong&gt; include the changes introduced in the start hash, but &lt;strong&gt;WILL&lt;/strong&gt; include changes introduced in the end hash.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Command:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action buildAllApps -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -start_hash ac37459 -end_hash 6e83b42&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, it generates a package at the location specified by the packagePath field in version-manager.properties.&lt;/p&gt;
&lt;p&gt;Finally, the build master will import the RC package into the higher environment using the Automated Import tool as described later in this play.&lt;/p&gt;
&lt;h3 id="_using_subversion_as_version_control_system"&gt;Using Subversion as Version Control System&lt;/h3&gt;
&lt;p&gt;To allow the Automated Versioning Manager to perform the checkout and commit operations with Subversion, the tool assumes the common Subversion project structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;trunk&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;branches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tags&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The location of the repository root must be provided by the property repoURL.&lt;/p&gt;
&lt;p&gt;Example: The following version-manager.properties configuration checks out the release 1 branch from the repository located at &lt;code&gt;https://svn.code.sf.net/p/deploymentautomationexample/code&lt;/code&gt; and commit all changes to the branch &amp;quot;release1&amp;quot;. Optionally, you may specify each of these parameters as command line arguments instead of using the version-manager.properties file.&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=SVN

repoUrl=https://svn.code.sf.net/p/deploymentautomationexample/code

branchName=branches/release1&lt;/pre&gt;&lt;/pre&gt;
&lt;h3 id="_using_git_as_version_control_system"&gt;Using Git as Version Control System&lt;/h3&gt;
&lt;p&gt;To use Git with the Automated Versioning Manager, properties may be specified on the command line or version-manager.properties should be updated as follows:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=GIT

repoUrl=https://github.com/gituser/testgitrepo.git

branchName=newbranch&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;branchName is an optional field. If the branch does not exist remotely, the tool will automatically create it on the local machine and push it to the remote repository as soon as addContents is executed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: if you are planning to check out a private repository, use the Git SSH URL rather than the HTTPS URL.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="automated_import_manager"&gt;Automated Import Manager&lt;/h2&gt;
&lt;h3 id="_summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;With the Cloud-approved Appian &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager plug-in&lt;/a&gt; and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager client&lt;/a&gt;&amp;nbsp;available on the AppMarket, users can automatically deploy applications and patch contents (either applications from Appian OR packages generated from the &lt;a href="#automated_versioning_manager"&gt;Automated Versioning Manager&lt;/a&gt;) to any environment. Users will have three options for deployment: the tool can either deploy from the tool&amp;rsquo;s user interface in one click, trigger the deployment from an external CI tool, or deploy from the command line.&lt;/p&gt;
&lt;p&gt;The Automated Import Manager automates the process of inspecting the application, executing DDL scripts, &lt;strong&gt;updating CDTs, republishing the appropriate datastores&lt;/strong&gt;, and importing the application.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4011.deployment_5F00_automation_5F00_02.png" /&gt;&lt;/div&gt;
&lt;h3 id="aim_features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect Application:&lt;/strong&gt; This tool will automatically mimic the &amp;quot;Inspect&amp;quot; functionality that exists within Appian&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Validating Application Content:&lt;/strong&gt; In addition to inspecting the application, the tool will ensure all CDT dependents are included to avoid objects pointing to older versions.&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute DDL Scripts:&lt;/strong&gt; DDL scripts can be uploaded and automatically executed. NOTE: For Microsoft SQL Server, only Transact-SQL statements are valid.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute Migrations with Flyway:&amp;nbsp;&lt;/strong&gt;Flyway is a tool used for managing database migrations. It makes it easier to track SQL script versions and not re-execute SQL scripts that have already been run. If a Flyway&amp;nbsp;directory is provided, the Automated Import Manager will automatically&amp;nbsp;execute migrations against the corresponding datasource.&amp;nbsp;Learn more about Flyway&amp;nbsp;&lt;a href="https://documentation.red-gate.com/fd/quickstart-how-flyway-works-184127223.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Update CDTs:&lt;/strong&gt; Users are no longer required to delete CDTs before updating them, this tool will perform this step automatically&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import Application and admin console configuration:&lt;/strong&gt; Automatically import an application with an optional customization file&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Republish Datastores:&lt;/strong&gt; After application import, datastores will be automatically published or republished&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add Patches:&lt;/strong&gt; Automatically add patch contents to a specified existing application&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage_"&gt;Usage&lt;/h3&gt;
&lt;h3 id="1-deploy-from-the-web-browser-ui"&gt;&amp;nbsp;Deploy from the Web Browser UI&lt;/h3&gt;
&lt;p&gt;The tool collects usage metrics by default. To opt-out of metrics collection, check the below option on the Web Browser UI:&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1600x480/__key/communityserver-wikis-components-files/00-00-00-00-46/0702.pastedimage1539370754100v1.png" /&gt;&lt;/div&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/796x1133/__key/communityserver-wikis-components-files/00-00-00-00-46/4186.Screen-Shot-2018_2D00_08_2D00_30-at-3.22.31-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Log into Appian as a system administrator&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the Deployment Automation UI available at the URL: &amp;lt;appian&amp;gt;/suite/plugins/servlet/deploymentautomation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Upload the patch or application you wish to import.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If this application is a patch, select the parent application to which patch contents should be added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the new application requires changes to the database schema (i.e. new or updated CDTs) you must choose one of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upload the corresponding DDL script(s) that accurately reflect these additions and/or updates.&lt;/li&gt;
&lt;li&gt;Set the datastore to &amp;quot;Automatically update database schema&amp;quot; and set &amp;quot;Allow Database Schema Changes Through Data Stores&amp;quot; in the Deployment section of the Appian Administration Console&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click on the button &amp;quot;Start Deployment&amp;quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;During the deployment, the screen is automatically refreshed every 5 seconds with the latest status of the deployment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the deployment is complete, the browser will update with a status page.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8228.deployment_5F00_automation_5F00_04.png" /&gt;&lt;/div&gt;
&lt;h3 id="2-deploy-from-the-command-line-script"&gt;&amp;nbsp;Deploy from the Command Line Script&lt;/h3&gt;
&lt;p&gt;The command line script - the client - can be downloaded from the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false&amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x2000/__key/communityserver-wikis-components-files/00-00-00-00-46/7723.Screen-Shot-2018_2D00_08_2D00_30-at-3.29.54-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open a command window in the same folder to which the client script and supporting libraries were unzipped.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the help guide pictured above, run the proper command to automatically import the application. Use -h or -help to view this menu at any time.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;-ac_customization_path: Indicates the path to the customization file to use when deploying the admin console&amp;nbsp;package or the application package.&lt;/li&gt;
&lt;li&gt;-admin_console_path: Indicates the path to the admin console file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-application_path: Indicates the path to the application file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-ddl_ds: Optional, use only if providing DDL scripts. The name of the datasource to use with the corresponding DDL script. Use a comma separator to enter multiple datasources.&lt;/li&gt;
&lt;li&gt;-ddl_path: Optional, use only if providing DDL scripts. Indicates the path to the DDL scripts to execute. Use a comma separator to enter multiple DDL script paths. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-flyway_path: Optional, use only if providing directories to execute DB migrations via Flyway. Use a comma separator to enter multiple directory paths. NOTE: Use quotations around the entry.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-force_import: A boolean flag which specifies whether or not the import ignores impact analysis results.If true, the import will occur even if objects with CDT references are missing&lt;/li&gt;
&lt;li&gt;-import_customization_path: Indicates the path to the import customization file to use&lt;/li&gt;
&lt;li&gt;-inspect_only: Optional, use to run an inspection of the package. Indicates the package should not be deployed but inspected only.&lt;/li&gt;
&lt;li&gt;-password: Password of the Appian user account&lt;/li&gt;
&lt;li&gt;-proxy_port: Optional, port of the proxy server to use to connect to Appian. This parameter is only used if the parameter -proxy_url is defined. The default value is 8080.&lt;/li&gt;
&lt;li&gt;-proxy_url: Optional, URL of the proxy to use to connect to Appian.&lt;/li&gt;
&lt;li&gt;-url: URL of the environment, of the format &lt;code&gt;https://example.appian.com/suite&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;-username: Username of the Appian user account to use for deployment&lt;/li&gt;
&lt;li&gt;-uuid: UUID of the application to which patch contents will be added&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy the application by typing the command deploy-application.bat and including the relevant parameters. Your command will look something like the one pictured below.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;deploy-application.bat -application_path &amp;quot;PATH TO APPLICATION ZIP&amp;quot; -username SERVICE_ACCOUNT_USERNAME -password SERVICE_ACCOUNT_PASSWORD -url APPIAN_URL -ddl_path &amp;quot;PATH TO DLL 1, PATH TO DLL 2&amp;quot; -ddl_ds jdbc/Appian1,jdbc/Appian2&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the &lt;strong&gt;configuration file&amp;nbsp;import-manager.properties&lt;/strong&gt;. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;During the deployment, the prompt is automatically refreshed every 5 seconds with the latest status of the deployment. When the deployment is complete, a status response (like the one pictured below) will display.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6746.deployment_5F00_automation_5F00_06.png" /&gt;&lt;/div&gt;
&lt;h3 id="3-deploy-from-an-external-continuous-integration-tool"&gt;Deploy from an External Continuous Integration tool&lt;/h3&gt;
&lt;p&gt;Additional Requirement:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An existing external Continuous Integration tool (such as Jenkins or Hudson) that is properly configured&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The steps below provide the high level steps to deploy an application from Jenkins.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new external job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the job to run the import script using the guidance in Deployment Option #2 listed above&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute the job&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8132.deployment_5F00_automation_5F00_07.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;When the deployment is complete, check the status page verify that the import was successful.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/5078.deployment_5F00_automation_5F00_08.png" /&gt;&lt;/div&gt;
&lt;h2 id="troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;h3 id="deciphering_script_error_messages"&gt;Deciphering Script Error Messages&lt;/h3&gt;
&lt;h3 id="inspect-failure"&gt;Inspect Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails on inspect, please check the error log and inspect log to determine the root cause of the inspect error. Additionally, please refer to the &lt;a href="https://docs.appian.com/suite/help/23.3/inspect-deployment-packages.html"&gt;Inspect Package&lt;/a&gt; documentation to determine what common inspect issues may arise.&lt;/p&gt;
&lt;h3 id="package-validation-failure"&gt;Package Validation Failure&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;This feature is only for Appian 7.11 and above.&lt;/strong&gt; If the Automated Import script fails during package validation, this means that objects with certain CDT dependencies are missing. Please check the error message which will include the list of missing required dependencies. Appian recommends to include these dependencies in the application prior to importing.&lt;/p&gt;
&lt;p&gt;In case you want to proceed with deploying the application regardless of missing CDT dependencies, use the flag -f.&lt;/p&gt;
&lt;h3 id="import-failure"&gt;Import Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails during import, it will produce an error log that contains the reason(s) for import failure. Please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Application_Deployment_Guidelines.html#Issues_During_Export_or_Import"&gt;Application Deployment Guidelines&lt;/a&gt; documentation on import issues to determine the root cause of the import failure.&lt;/p&gt;
&lt;h3 id="invalid-credentials"&gt;Invalid Credentials&lt;/h3&gt;
&lt;p&gt;Please ensure that these credentials are associated with an active Appian system administrator account. Basic user credentials cannot be used.&lt;/p&gt;
&lt;h3 id="connection-refused-with-deployment-command-line-script"&gt;Connection Refused With Deployment Command Line Script&lt;/h3&gt;
&lt;p&gt;A &amp;quot;Connection Refused&amp;quot; error could be the result of using the wrong URL when executing the script. The URL provided as a parameter must:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;include the suffix &amp;quot;/suite&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include a port number if not using the port 80 with HTTP or port 443 with HTTPS&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="release_notes"&gt;Release Notes&lt;/h2&gt;
&lt;h3 id="september&amp;nbsp;2021_-_release_2.5.13"&gt;September&amp;nbsp;2021 - Release 2.5.13&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed an issue where setting &amp;quot;appianObjectsRepoPath&amp;quot; prevented a package that included a patches.xml file from being processed successfully&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2021_-_release_2.5.12"&gt;March&amp;nbsp;2021 - Release 2.5.12&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Updated the link to the import log in the ADM servlet after a change was made to the Appian API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed a bug that was preventing Flyway files from being included in metadata.properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september&amp;nbsp;2020_-_release_2.5.11"&gt;September&amp;nbsp;2020 - Release 2.5.11&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Upgraded Flyway version to 6.5.5 for compatibility with MariaDB.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2020_-_release_2.5.10"&gt;August&amp;nbsp;2020 - Release 2.5.10&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added the ability to dynamically generate the Metadata file for the &amp;quot;buildAllApps&amp;quot; action to reflect only the list of database scripts that are included in the package for a given commit range.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li class="li1"&gt;Fixed the interpretation of &amp;quot;appianObjectsRepoPath&amp;quot; on Windows platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="december&amp;nbsp;2019&amp;nbsp;-_release_2.5.9"&gt;December&amp;nbsp;2019&amp;nbsp;- Release 2.5.9&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added DNS proxy support to ADM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AIM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AVM&lt;/li&gt;
&lt;li class="li1"&gt;Added support for special characters in passwords in ADM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="july&amp;nbsp;2019&amp;nbsp;-_release_2.5.8"&gt;July&amp;nbsp;2019&amp;nbsp;- Release 2.5.8&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;Fixed the problem with obtaining TransactionManager and creating DataConfiguration against latest the Appian version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april&amp;nbsp;2019&amp;nbsp;-_release_2.5.7"&gt;April&amp;nbsp;2019&amp;nbsp;- Release 2.5.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added commit message prompt to folder listener&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed Windows issue with pushing file updates to versioning manager&lt;/li&gt;
&lt;li class="li1"&gt;Fixed import patch failure not adding newly created objects issue&lt;/li&gt;
&lt;li class="li1"&gt;Fixed semicolon separator parsing issue&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2019_-_release_2.5.6"&gt;March&amp;nbsp;2019 - Release 2.5.6&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added proxy authentication support for import client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="february&amp;nbsp;2019_-_release_2.5.5"&gt;February&amp;nbsp;2019 - Release 2.5.5&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed DDL paths bug&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2019_-_release_2.5.4"&gt;January&amp;nbsp;2019 - Release 2.5.4&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Improved descriptions of errors encountered during deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed &amp;quot;Connection Refused&amp;quot; bug when running on a Jenkins server&lt;/li&gt;
&lt;li&gt;Fixed &amp;quot;buildSingleApp&amp;quot; AVM bug when specifying an appianObjectsRepoPath&lt;/li&gt;
&lt;li&gt;Fixed rare &amp;quot;hanging&amp;quot; bug in AIM Client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="november&amp;nbsp;2018_-_release_2.5.3"&gt;November&amp;nbsp;2018 - Release 2.5.3&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Created a reset command for Remote Automated Deployment Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Version and Import Metrics Logger Initialized correctly to fix null pointer exception&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october&amp;nbsp;2018_-_release_2.5.2"&gt;October&amp;nbsp;2018 - Release 2.5.2&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li&gt;Folder listener to auto trigger &amp;ldquo;Add Contents&amp;rdquo; action&lt;/li&gt;
&lt;li&gt;Field validation for import and versioning manager properties files&lt;/li&gt;
&lt;li&gt;Usage metrics collection to better understand tool use&lt;/li&gt;
&lt;li&gt;Updated error log messages&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;ADM UI: Handle apostrophes in app name&lt;/li&gt;
&lt;li&gt;ZIP type validation for Automated Import Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="&amp;nbsp;september&amp;nbsp;2018_-_release_2.5.1"&gt;&amp;nbsp;September&amp;nbsp;2018 - Release 2.5.1&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;New buildMultipleApps action&lt;/li&gt;
&lt;li class="li1"&gt;Check version of tools with -v or -version flags&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed ADM SQL errors with non-null statements and forward slash as delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.5.0"&gt;August&amp;nbsp;2018 - Release 2.5.0&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added Flyway DB version control tool to command line and AIM GUI&lt;/li&gt;
&lt;li class="li1"&gt;Allow import of DDL scripts or Flyway scripts without an application zip or patch zip&lt;/li&gt;
&lt;li class="li1"&gt;Added Folder Listener script that will run addContents automatically when a file is dropped into a folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added buildAllApps to list of approved actions&lt;/li&gt;
&lt;li class="li1"&gt;Set inspect_only properly in AIM&lt;/li&gt;
&lt;li class="li1"&gt;Fixed bug where repo would be cloned into a folder with an incorrect name&lt;/li&gt;
&lt;li class="li1"&gt;Passed in correct authentication token for buildAllApps and buildSingleApp&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.4.7"&gt;August&amp;nbsp;2018 - Release 2.4.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added &amp;quot;buildSingleApp&amp;quot; action to extract one app from multi app repo&lt;/li&gt;
&lt;li class="li1"&gt;Renamed &amp;quot;buildPackage&amp;quot; action to &amp;quot;buildAllApps&amp;quot; to better clarify the functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed miscellaneous issues with parsing SQL in DDL file&lt;/li&gt;
&lt;li class="li1"&gt;Mark/reset issue with large customization files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june&amp;nbsp;2018_-_release_2.4.6"&gt;June&amp;nbsp;2018 - Release 2.4.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added an import-manager.properties file to set default values for importing applications&lt;/li&gt;
&lt;li&gt;Automated versioning manager supports adding a package with multiple patches&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Application version UUID is updated when adding patches to a version control&lt;/li&gt;
&lt;li&gt;Import no longer fails when SQL in DDL file contains a &amp;quot;;&amp;quot;, &amp;quot;&amp;ndash;&amp;quot; or &amp;quot;/**/&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2018_-_release_2.4.5"&gt;March 2018 - Release 2.4.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add support for proxy configuration in the deployment client script with parameters &amp;quot;proxy_port&amp;quot; and &amp;quot;proxy_url&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2018_-_release_2.4.4"&gt;January&amp;nbsp;2018 - Release 2.4.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2018_-_release_2.4.3"&gt;January 2018 - Release 2.4.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.4&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2017_-_release_2.4.2"&gt;September 2017 - Release 2.4.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.3&lt;/li&gt;
&lt;li&gt;Better handling of end of line characters in the SQL scripts&lt;/li&gt;
&lt;li&gt;Support for customization file when deploying an application package&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2017_-_release_2.4.1"&gt;June 2017 - Release 2.4.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.2&lt;/li&gt;
&lt;li&gt;Fix defect preventing to execute DB scripts as part of a deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2017_-_release_2.4.0"&gt;January 2017 - Release 2.4.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.1&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october_2016_-_release_2.3"&gt;October 2016 - Release 2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 16.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.9"&gt;September 2016 - Release 2.2.9&lt;/h3&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Successfully deploy application packages containing new Datastore entities and new dependents on these entities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.8"&gt;September 2016 - Release 2.2.8&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with missing artifacts in package when using START_HASH and END_HASH.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.7"&gt;August 2016 - Release 2.2.7&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing updated Documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.6"&gt;August 2016 - Release 2.2.6&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New parameter no_update to build a package from the local repository without first performing a checkout&lt;/li&gt;
&lt;li&gt;New integrity control when checking in applications and patches&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.5"&gt;August 2016 - Release 2.2.5&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing new CDTs and updated CDTs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.4"&gt;June 2016 - Release 2.2.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.3"&gt;June 2016 - Release 2.2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Include the source code in all modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.2"&gt;June 2016 - Release 2.2.2&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new parameter appian_objects_repo_path to specify where the Appian artifacts are located in the repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="may_2016_-_release_2.2.0"&gt;May 2016 - Release 2.2.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for admin console packages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed update-database-schema to support native product capability of automatic database updates via datastore and administration console.&lt;/li&gt;
&lt;li&gt;Updated Web Browser UI style&lt;/li&gt;
&lt;li&gt;Removed option for &amp;quot;Automatically update the database schema when publishing the data stores&amp;quot; from the Web Browser UI&lt;/li&gt;
&lt;li&gt;Added support for admin console deployments&lt;/li&gt;
&lt;li&gt;Added support in command line for inspect_only parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2016_-_release_2.1.0"&gt;March 2016 - Release 2.1.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for input flexibility. Now, the command line for versioning manager supports all possible parameters.&lt;/li&gt;
&lt;li&gt;Allowed tags as inputs to start hash and end hash.&lt;/li&gt;
&lt;li&gt;Added inputs of the following predefined keywords: FIRST_COMMIT (which maps to first commit ever made) and LAST_COMMIT (the previous commit). NOTE: this is only allowed on the start hash input.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for 16.1.&lt;/li&gt;
&lt;li&gt;Added action for &amp;quot;Inspect Only&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Delivery, Platform&lt;/div&gt;
</description></item><item><title>Deployment Automation</title><link>https://community.appian.com/success/w/guide/3328/deployment-automation/revision/13</link><pubDate>Tue, 31 Oct 2023 17:27:09 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43c6339b-3b7e-4b44-ba4b-4a8c46753052</guid><dc:creator>Kim Day</dc:creator><comments>https://community.appian.com/success/w/guide/3328/deployment-automation#comments</comments><description>Revision 13 posted to Guide by Kim Day on 10/31/2023 5:27:09 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian provides several DevOps tools to automate the &lt;a href="https://docs.appian.com/suite/help/latest/devops-with-appian.html#deploy" rel="noopener noreferrer" target="_blank"&gt;deployment of Appian applications&lt;/a&gt; such as Compare &amp;amp; Deploy and Deployment APIs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://docs.appian.com/suite/help/latest/Deploy_to_Target_Environments.html#prodlink-external-deployment-apis"&gt;Deployment APIs&lt;/a&gt; offer a set of API&amp;nbsp;endpoints that allow you to inspect and deploy applications, packages, import customization files, plug-ins, and execute database scripts.&amp;nbsp;These APIs allow you to programmatically trigger deployments and integrate your Appian release into an automated pipeline. You can set up your pipeline once and run it the exact same way for all future deployments, saving time and avoiding manual errors. It is recommended to use the Deployment APIs whenever possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The tools described in this play offer a few alternatives to Appian base product features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tightly integrate with a version control system to store and retrieve package files using the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Automated Versioning Manager (AVM)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Programmatically deploy Admin Console settings and applications using the &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) plug-in&lt;/a&gt;&amp;nbsp;and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="automated_versioning_manager"&gt;Automated Versioning Manager&lt;/h2&gt;
&lt;h3 id="summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;The Automated Versioning Manager - available on the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt; - is a tool that helps managing Appian applications and database DDL files in a version control system. Given an Appian application ZIP file, the Automated Versioning Manager performs the following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;It unzips the application and organizes the artifact XML files in the repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It automates the check-in and checkout operations with the version control system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It generates application packages for import in Appian based on the contents of the repository and a range of changes to include.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal of this tool is to facilitate the adoption and usage of a version control system to perform configuration management of the Appian applications and database DDL files.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/1374.deployment_5F00_automation_5F00_00.png" /&gt;&lt;/div&gt;
&lt;h3 id="features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Version Control integration (Git, SVN)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supports Appian applications and patches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate import package from hash ranges&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Folder Listener to add contents to Version Control&lt;/li&gt;
&lt;li&gt;Supports GitHub, GitLab, and BitBucket for Version Control&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage"&gt;Usage&lt;/h3&gt;
&lt;p&gt;The automated versioning tool is a script to be run from the command line or terminal. It contains a wrapper for Windows (version-application.bat) and Linux (version-application.sh) systems. This document will first discuss how to use the tool in general, and then discuss use cases to give concrete examples. All parameters can be passed either on the command line or in the properties file.&lt;/p&gt;
&lt;h3 id="script_execution"&gt;Script Execution&lt;/h3&gt;
&lt;p&gt;To run the script, open a command window and navigate to the directory where the automated versioning scripts are located. They are named version-application.bat or version-application.sh.&lt;/p&gt;
&lt;p&gt;Use the -h or -help parameters to view the help menu within the script. The parameters are described here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Required Parameters (required for all four actions: addContents, buildAllApps, buildSingleApp, buildMultipleApps, and updateLocalRepo)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-action - Selects which action of the script to run. Acceptable values are: addContents, updateLocalRepo, buildAllApps,&amp;nbsp;buildSingleApp, and&amp;nbsp;buildMultipleApps. Each action is detailed in the use cases below.&lt;/li&gt;
&lt;li&gt;-vc_username -The username associated with the version control (Git or SVN) account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-vc_password -Please check the Security Settings of the version control account. If you have 2-factor authentication enabled, the password requires the version control account token. If you do NOT have 2-factor authentication enabled, the password is the one associated with the version control account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for addContents action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-application_path - The path on your filesystem where the application ZIP is located.&lt;/li&gt;
&lt;li&gt;-admin_console_path - The path on your filesystem where the admin console ZIP file is located.&lt;/li&gt;
&lt;li&gt;-ddl_path - List of comma-separated paths for the DDL files to be included in the deployment package.&lt;/li&gt;
&lt;li&gt;-flyway_path&amp;nbsp;- List of comma-separated paths for the directories to execute DB migrations via Flyway.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;. To learn how&amp;nbsp;the Automated Import Manager&amp;nbsp;uses Flyway, refer to &lt;a href="#aim_features"&gt;AIM Features&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-ddl_ds - List of comma-separated datasources associated with the provided DDL files. Must provide the same number of entries as number of DDL files specified with the -ddl_path option or number of directories specified with the -flyway_path option. &lt;strong&gt;NOTE: the order of the specified datasource names must match the order of the script paths specified.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-uuid - The UUID of the application to which the contents of the application should be added. This option is only used if deploying a patch application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- The&amp;nbsp;name of the application to which the contents of the application should be added. This option is only used if deploying a&amp;nbsp;patch&amp;nbsp;application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-commit_message - The message that will be associated with the commit. If not included, a default commit message Committed by @username is provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildAllApps&amp;nbsp;action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-start_hash - Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit. &lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash - End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildSingleApp action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid - The UUID of the application you want to build.&lt;/li&gt;
&lt;li&gt;-application_name - The name of the application you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildMultipleApps action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid&amp;nbsp;- Comma separated list of UUIDs of the applications you want to build.&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- Comma separated list of names of the applications that you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update&amp;nbsp;- Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for updateLocalRepo action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are no additional options (other than required options) for updateLocalRepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Additional Parameters&lt;/strong&gt; - These parameters are REQUIRED, and may be specified here or in the properties file (described in the following section). If they are specified in both locations, the parameters specified in the command line take precedence.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-version_control_type - The version control type used, either GIT or SVN.&lt;/li&gt;
&lt;li&gt;-local_repo_path - The path on the filesystem where the local repository is located. All files on the remote repository are cloned to this path. Example: C:\\MyFiles\\ChangeManagementRepo. &lt;strong&gt;NOTE: if using Windows, be sure to include double forward slashes (as seen in the example) for path separation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-appian_objects_repo_path - Path to the folder containing the Appian objects in the repository. This path is relative to the path of the local repository. If not specified, the Appian objects are checked out to and committed from the root of the local repository path.&lt;/li&gt;
&lt;li&gt;-repo_url - The URL that defines the remote repository. Example: https://github.com/git-username/project-name.git, svn+ssh://svn.code.sf.net/p/project-name/code&lt;/li&gt;
&lt;li&gt;-package_path - &lt;em&gt;For buildAllApps,&amp;nbsp;&lt;em&gt;buildSingleApp, and&amp;nbsp;&lt;em&gt;&lt;em&gt;buildMultipleApps&lt;/em&gt;&lt;/em&gt;&amp;nbsp;&lt;/em&gt;only.&lt;/em&gt; The path on the filesystem where packages are generated. Must include filename of package.&lt;/li&gt;
&lt;li&gt;-branch_name - Branch to check out and use (if not master)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="configuring-using-the-properties-file"&gt;Configuring using the Properties File&lt;/h3&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the configuration file version-manager.properties. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;In case an option is specified both on the command line and in the properties file, the command line value takes precedence and is used.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false &amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;p&gt;If used, the property&amp;nbsp;&lt;code&gt;appianObjectRepoPath&lt;/code&gt;&amp;nbsp;must not reference a file path more than one level below the root directory of the repository. Ex.&amp;nbsp;appianObjectRepoPath =&amp;nbsp;/appian/objects&amp;nbsp;is an acceptable configuration but&amp;nbsp;appianObjectRepoPath = /appian/folder/objects is not valid.&lt;/p&gt;
&lt;h3 id="use-cases"&gt;Use Cases&lt;/h3&gt;
&lt;h4 id="1-new-developer-joins-team-updatelocalrepo"&gt;#1: New developer joins team (updateLocalRepo)&lt;/h4&gt;
&lt;p&gt;In this use case, a new developer has joined the team and wants to get a copy of all the work completed so far. The developer should:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Update version-manager.properties with the appropriate fields. See the &lt;a href="#script_execution"&gt;Script Setup&lt;/a&gt; section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;updateLocalRepo&lt;/strong&gt; as the action flag. The developer must provide the username and password for authenticating against their version control system (-vc_username, -vc_password).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action updateLocalRepo -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, the developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;h4 id="2-developer-adds-artifacts-to-the-repository-addcontents"&gt;#2: Developer adds artifacts to the repository (addContents)&lt;/h4&gt;
&lt;p&gt;In this use case, the developer on a team has been working in the development environment and has changes he wishes to add to the repository. The changes may be a new application or a patch to an existing application. Note: the repository serves as a record of changes, and can be thought of as an additional Appian environment. The steps involved are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the Appian development environment, create an application (or a patch) that contains the changed objects.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Export those changes and download the application ZIP file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;addContents&lt;/strong&gt; as the action flag. The developer must provide the path of the ZIP file they exported (-application_path) from Appian in step 2. They must also provide the username and password for authenticating their version control system (-vc_username, -vc_password). &lt;strong&gt;NOTE: these are NOT Appian credentials.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Optional: if the application specified for -application_path is a patch, update the -uuid option to specify the parent application&amp;rsquo;s uuid. &lt;em&gt;The script will exit with error if a patch application ZIP is provided but no uuid is passed in.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Optional: if DDL scripts have been modified, specify the path(s) and their associated JDBC datasource names. NOTE: The same number of DDL scripts and datasource names must be entered into the script, even if the datasource is the same for all scripts. For example: the developer wishes to add two ddl scripts located at C:\DDLs\script1.sql and C:\DDLs\script2.sql. They do so by setting the -ddl_path option as C:\DDLs\script1.sql,C:\DDLs\script2.sql If both scripts are to be executed on jdbc/AppianDS, they must set the -ddl_ds option as jdbc/AppianDS,jdbc/AppianDS. Note that the datasource name is passed in &lt;strong&gt;&lt;em&gt;twice&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: include a custom commit message using the -commit_message option&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="caution"&gt;WARNING: It is HIGHLY recommended that DDL scripts are developed INCREMENTALLY. That is, do not modify existing DDL scripts - instead, create new scripts that only contain the commands the designer wishes to execute.This is because if the designer updates an existing DDL script, all lines in the script will be executed. This can lead to data integrity issues if not managed properly. PLEASE EXERCISE CAUTION WHEN MODIFYING EXISTING DDL SCRIPTS. Example: if the designer modifies a script that contains commands to drop and recreate a table, the script will drop and recreate the table even if the designer did not modify that section.&lt;/div&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action addContents -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -application_path &amp;quot;C:\App.zip&amp;quot; -ddl_ds jdbc/AppianAnywhere -ddl_path “C:\script1.sql” -commit_message “Adding account executive record”&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When the script is executed, three things occur:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The application ZIP is unzipped and placed into the local repository, and the DDL files are placed into a ddl_files folder within the local repository. If the -uuid option is selected, the appropriate application xml file is updated.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The changes are committed (and pushed, if using Git) to the remote repository.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When the package is imported into Appian, all lines within script1.sql will be executed and contents within the application ZIP are imported.&lt;/p&gt;
&lt;p&gt;Using Folder Listener:&lt;/p&gt;
&lt;p&gt;Alternatively, instead of running the script, the developer can execute&amp;nbsp;avm-folder-listener-&amp;lt;os&amp;gt;&amp;nbsp;in the&amp;nbsp;folder-listener&amp;nbsp;directory. The following command prompt will appear:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x960/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png" /&gt;&lt;/div&gt;
&lt;p&gt;The developer will provide the directory that the application or patch ZIPs will be dropped into as well as the directory of the automated versioning manager tool. Otherwise, the default directories will be used.&lt;/p&gt;
&lt;p&gt;Once setup, the developer can drag the desired application ZIP into the specified directory and the application ZIP will be versioned in their GIT repository. This is assuming that all necessary fields have already been configured in the file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;p&gt;If the developer is supplying a patch ZIP, the console will prompt the developer for the associated application uuid or name. Once supplied, the patch will be deployed to the specified environment in the&amp;nbsp;file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;h4 id="3-build-master-generates-new-rc-deployment-package-buildpackage"&gt;#3: Build master generates new RC deployment package (buildAllApps)&lt;/h4&gt;
&lt;p&gt;In this use case, all additions made by the team have been incorporated into the remote repository and have gone through sufficient testing. The build master is now ready to promote a new package to the higher environment. The new package should include all additions and changes since the last deployment. The build master will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;(If not done previously) Update version-manager.properties with the appropriate fields. See the Script Setup section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;buildAllApps&lt;/strong&gt; as the action flag. The build master must provide the username and password for authenticating against their version control system (-vc_username, -vc_password). To get a specific set of changes, input a value for the -start_hash option and the -end_hash option. This will generate the package with all new and changed files between the two hash options.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;NOTE: the package will &lt;strong&gt;NOT&lt;/strong&gt; include the changes introduced in the start hash, but &lt;strong&gt;WILL&lt;/strong&gt; include changes introduced in the end hash.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Command:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action buildAllApps -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -start_hash ac37459 -end_hash 6e83b42&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, it generates a package at the location specified by the packagePath field in version-manager.properties.&lt;/p&gt;
&lt;p&gt;Finally, the build master will import the RC package into the higher environment using the Automated Import tool as described later in this play.&lt;/p&gt;
&lt;h3 id="_using_subversion_as_version_control_system"&gt;Using Subversion as Version Control System&lt;/h3&gt;
&lt;p&gt;To allow the Automated Versioning Manager to perform the checkout and commit operations with Subversion, the tool assumes the common Subversion project structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;trunk&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;branches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tags&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The location of the repository root must be provided by the property repoURL.&lt;/p&gt;
&lt;p&gt;Example: The following version-manager.properties configuration checks out the release 1 branch from the repository located at &lt;code&gt;https://svn.code.sf.net/p/deploymentautomationexample/code&lt;/code&gt; and commit all changes to the branch &amp;quot;release1&amp;quot;. Optionally, you may specify each of these parameters as command line arguments instead of using the version-manager.properties file.&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=SVN

repoUrl=https://svn.code.sf.net/p/deploymentautomationexample/code

branchName=branches/release1&lt;/pre&gt;&lt;/pre&gt;
&lt;h3 id="_using_git_as_version_control_system"&gt;Using Git as Version Control System&lt;/h3&gt;
&lt;p&gt;To use Git with the Automated Versioning Manager, properties may be specified on the command line or version-manager.properties should be updated as follows:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=GIT

repoUrl=https://github.com/gituser/testgitrepo.git

branchName=newbranch&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;branchName is an optional field. If the branch does not exist remotely, the tool will automatically create it on the local machine and push it to the remote repository as soon as addContents is executed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: if you are planning to check out a private repository, use the Git SSH URL rather than the HTTPS URL.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="automated_import_manager"&gt;Automated Import Manager&lt;/h2&gt;
&lt;h3 id="_summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;With the Cloud-approved Appian &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager plug-in&lt;/a&gt; and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager client&lt;/a&gt;&amp;nbsp;available on the AppMarket, users can automatically deploy applications and patch contents (either applications from Appian OR packages generated from the &lt;a href="#automated_versioning_manager"&gt;Automated Versioning Manager&lt;/a&gt;) to any environment. Users will have three options for deployment: the tool can either deploy from the tool&amp;rsquo;s user interface in one click, trigger the deployment from an external CI tool, or deploy from the command line.&lt;/p&gt;
&lt;p&gt;The Automated Import Manager automates the process of inspecting the application, executing DDL scripts, &lt;strong&gt;updating CDTs, republishing the appropriate datastores&lt;/strong&gt;, and importing the application.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4011.deployment_5F00_automation_5F00_02.png" /&gt;&lt;/div&gt;
&lt;h3 id="aim_features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect Application:&lt;/strong&gt; This tool will automatically mimic the &amp;quot;Inspect&amp;quot; functionality that exists within Appian&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Validating Application Content:&lt;/strong&gt; In addition to inspecting the application, the tool will ensure all CDT dependents are included to avoid objects pointing to older versions.&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute DDL Scripts:&lt;/strong&gt; DDL scripts can be uploaded and automatically executed. NOTE: For Microsoft SQL Server, only Transact-SQL statements are valid.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute Migrations with Flyway:&amp;nbsp;&lt;/strong&gt;Flyway is a tool used for managing database migrations. It makes it easier to track SQL script versions and not re-execute SQL scripts that have already been run. If a Flyway&amp;nbsp;directory is provided, the Automated Import Manager will automatically&amp;nbsp;execute migrations against the corresponding datasource.&amp;nbsp;Learn more about Flyway&amp;nbsp;&lt;a href="https://documentation.red-gate.com/fd/quickstart-how-flyway-works-184127223.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Update CDTs:&lt;/strong&gt; Users are no longer required to delete CDTs before updating them, this tool will perform this step automatically&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import Application and admin console configuration:&lt;/strong&gt; Automatically import an application with an optional customization file&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Republish Datastores:&lt;/strong&gt; After application import, datastores will be automatically published or republished&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add Patches:&lt;/strong&gt; Automatically add patch contents to a specified existing application&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage_"&gt;Usage&lt;/h3&gt;
&lt;h3 id="1-deploy-from-the-web-browser-ui"&gt;&amp;nbsp;Deploy from the Web Browser UI&lt;/h3&gt;
&lt;p&gt;The tool collects usage metrics by default. To opt-out of metrics collection, check the below option on the Web Browser UI:&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1600x480/__key/communityserver-wikis-components-files/00-00-00-00-46/0702.pastedimage1539370754100v1.png" /&gt;&lt;/div&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/796x1133/__key/communityserver-wikis-components-files/00-00-00-00-46/4186.Screen-Shot-2018_2D00_08_2D00_30-at-3.22.31-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Log into Appian as a system administrator&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the Deployment Automation UI available at the URL: &amp;lt;appian&amp;gt;/suite/plugins/servlet/deploymentautomation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Upload the patch or application you wish to import.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If this application is a patch, select the parent application to which patch contents should be added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the new application requires changes to the database schema (i.e. new or updated CDTs) you must choose one of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upload the corresponding DDL script(s) that accurately reflect these additions and/or updates.&lt;/li&gt;
&lt;li&gt;Set the datastore to &amp;quot;Automatically update database schema&amp;quot; and set &amp;quot;Allow Database Schema Changes Through Data Stores&amp;quot; in the Deployment section of the Appian Administration Console&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click on the button &amp;quot;Start Deployment&amp;quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;During the deployment, the screen is automatically refreshed every 5 seconds with the latest status of the deployment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the deployment is complete, the browser will update with a status page.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8228.deployment_5F00_automation_5F00_04.png" /&gt;&lt;/div&gt;
&lt;h3 id="2-deploy-from-the-command-line-script"&gt;&amp;nbsp;Deploy from the Command Line Script&lt;/h3&gt;
&lt;p&gt;The command line script - the client - can be downloaded from the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false&amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x2000/__key/communityserver-wikis-components-files/00-00-00-00-46/7723.Screen-Shot-2018_2D00_08_2D00_30-at-3.29.54-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open a command window in the same folder to which the client script and supporting libraries were unzipped.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the help guide pictured above, run the proper command to automatically import the application. Use -h or -help to view this menu at any time.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;-ac_customization_path: Indicates the path to the customization file to use when deploying the admin console&amp;nbsp;package or the application package.&lt;/li&gt;
&lt;li&gt;-admin_console_path: Indicates the path to the admin console file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-application_path: Indicates the path to the application file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-ddl_ds: Optional, use only if providing DDL scripts. The name of the datasource to use with the corresponding DDL script. Use a comma separator to enter multiple datasources.&lt;/li&gt;
&lt;li&gt;-ddl_path: Optional, use only if providing DDL scripts. Indicates the path to the DDL scripts to execute. Use a comma separator to enter multiple DDL script paths. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-flyway_path: Optional, use only if providing directories to execute DB migrations via Flyway. Use a comma separator to enter multiple directory paths. NOTE: Use quotations around the entry.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-force_import: A boolean flag which specifies whether or not the import ignores impact analysis results.If true, the import will occur even if objects with CDT references are missing&lt;/li&gt;
&lt;li&gt;-import_customization_path: Indicates the path to the import customization file to use&lt;/li&gt;
&lt;li&gt;-inspect_only: Optional, use to run an inspection of the package. Indicates the package should not be deployed but inspected only.&lt;/li&gt;
&lt;li&gt;-password: Password of the Appian user account&lt;/li&gt;
&lt;li&gt;-proxy_port: Optional, port of the proxy server to use to connect to Appian. This parameter is only used if the parameter -proxy_url is defined. The default value is 8080.&lt;/li&gt;
&lt;li&gt;-proxy_url: Optional, URL of the proxy to use to connect to Appian.&lt;/li&gt;
&lt;li&gt;-url: URL of the environment, of the format &lt;code&gt;https://example.appian.com/suite&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;-username: Username of the Appian user account to use for deployment&lt;/li&gt;
&lt;li&gt;-uuid: UUID of the application to which patch contents will be added&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy the application by typing the command deploy-application.bat and including the relevant parameters. Your command will look something like the one pictured below.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;deploy-application.bat -application_path &amp;quot;PATH TO APPLICATION ZIP&amp;quot; -username SERVICE_ACCOUNT_USERNAME -password SERVICE_ACCOUNT_PASSWORD -url APPIAN_URL -ddl_path &amp;quot;PATH TO DLL 1, PATH TO DLL 2&amp;quot; -ddl_ds jdbc/Appian1,jdbc/Appian2&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the &lt;strong&gt;configuration file&amp;nbsp;import-manager.properties&lt;/strong&gt;. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;During the deployment, the prompt is automatically refreshed every 5 seconds with the latest status of the deployment. When the deployment is complete, a status response (like the one pictured below) will display.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6746.deployment_5F00_automation_5F00_06.png" /&gt;&lt;/div&gt;
&lt;h3 id="3-deploy-from-an-external-continuous-integration-tool"&gt;Deploy from an External Continuous Integration tool&lt;/h3&gt;
&lt;p&gt;Additional Requirement:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An existing external Continuous Integration tool (such as Jenkins or Hudson) that is properly configured&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The steps below provide the high level steps to deploy an application from Jenkins.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new external job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the job to run the import script using the guidance in Deployment Option #2 listed above&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute the job&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8132.deployment_5F00_automation_5F00_07.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;When the deployment is complete, check the status page verify that the import was successful.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/5078.deployment_5F00_automation_5F00_08.png" /&gt;&lt;/div&gt;
&lt;h2 id="troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;h3 id="deciphering_script_error_messages"&gt;Deciphering Script Error Messages&lt;/h3&gt;
&lt;h3 id="inspect-failure"&gt;Inspect Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails on inspect, please check the error log and inspect log to determine the root cause of the inspect error. Additionally, please refer to the &lt;a href="https://docs.appian.com/suite/help/23.3/inspect-deployment-packages.html"&gt;Inspect Package&lt;/a&gt; documentation to determine what common inspect issues may arise.&lt;/p&gt;
&lt;h3 id="package-validation-failure"&gt;Package Validation Failure&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;This feature is only for Appian 7.11 and above.&lt;/strong&gt; If the Automated Import script fails during package validation, this means that objects with certain CDT dependencies are missing. Please check the error message which will include the list of missing required dependencies. Appian recommends to include these dependencies in the application prior to importing.&lt;/p&gt;
&lt;p&gt;In case you want to proceed with deploying the application regardless of missing CDT dependencies, use the flag -f.&lt;/p&gt;
&lt;h3 id="import-failure"&gt;Import Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails during import, it will produce an error log that contains the reason(s) for import failure. Please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Application_Deployment_Guidelines.html#Issues_During_Export_or_Import"&gt;Application Deployment Guidelines&lt;/a&gt; documentation on import issues to determine the root cause of the import failure.&lt;/p&gt;
&lt;h3 id="invalid-credentials"&gt;Invalid Credentials&lt;/h3&gt;
&lt;p&gt;Please ensure that these credentials are associated with an active Appian system administrator account. Basic user credentials cannot be used.&lt;/p&gt;
&lt;h3 id="connection-refused-with-deployment-command-line-script"&gt;Connection Refused With Deployment Command Line Script&lt;/h3&gt;
&lt;p&gt;A &amp;quot;Connection Refused&amp;quot; error could be the result of using the wrong URL when executing the script. The URL provided as a parameter must:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;include the suffix &amp;quot;/suite&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include a port number if not using the port 80 with HTTP or port 443 with HTTPS&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="release_notes"&gt;Release Notes&lt;/h2&gt;
&lt;h3 id="september&amp;nbsp;2021_-_release_2.5.13"&gt;September&amp;nbsp;2021 - Release 2.5.13&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed an issue where setting &amp;quot;appianObjectsRepoPath&amp;quot; prevented a package that included a patches.xml file from being processed successfully&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2021_-_release_2.5.12"&gt;March&amp;nbsp;2021 - Release 2.5.12&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Updated the link to the import log in the ADM servlet after a change was made to the Appian API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed a bug that was preventing Flyway files from being included in metadata.properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september&amp;nbsp;2020_-_release_2.5.11"&gt;September&amp;nbsp;2020 - Release 2.5.11&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Upgraded Flyway version to 6.5.5 for compatibility with MariaDB.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2020_-_release_2.5.10"&gt;August&amp;nbsp;2020 - Release 2.5.10&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added the ability to dynamically generate the Metadata file for the &amp;quot;buildAllApps&amp;quot; action to reflect only the list of database scripts that are included in the package for a given commit range.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li class="li1"&gt;Fixed the interpretation of &amp;quot;appianObjectsRepoPath&amp;quot; on Windows platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="december&amp;nbsp;2019&amp;nbsp;-_release_2.5.9"&gt;December&amp;nbsp;2019&amp;nbsp;- Release 2.5.9&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added DNS proxy support to ADM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AIM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AVM&lt;/li&gt;
&lt;li class="li1"&gt;Added support for special characters in passwords in ADM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="july&amp;nbsp;2019&amp;nbsp;-_release_2.5.8"&gt;July&amp;nbsp;2019&amp;nbsp;- Release 2.5.8&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;Fixed the problem with obtaining TransactionManager and creating DataConfiguration against latest the Appian version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april&amp;nbsp;2019&amp;nbsp;-_release_2.5.7"&gt;April&amp;nbsp;2019&amp;nbsp;- Release 2.5.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added commit message prompt to folder listener&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed Windows issue with pushing file updates to versioning manager&lt;/li&gt;
&lt;li class="li1"&gt;Fixed import patch failure not adding newly created objects issue&lt;/li&gt;
&lt;li class="li1"&gt;Fixed semicolon separator parsing issue&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2019_-_release_2.5.6"&gt;March&amp;nbsp;2019 - Release 2.5.6&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added proxy authentication support for import client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="february&amp;nbsp;2019_-_release_2.5.5"&gt;February&amp;nbsp;2019 - Release 2.5.5&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed DDL paths bug&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2019_-_release_2.5.4"&gt;January&amp;nbsp;2019 - Release 2.5.4&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Improved descriptions of errors encountered during deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed &amp;quot;Connection Refused&amp;quot; bug when running on a Jenkins server&lt;/li&gt;
&lt;li&gt;Fixed &amp;quot;buildSingleApp&amp;quot; AVM bug when specifying an appianObjectsRepoPath&lt;/li&gt;
&lt;li&gt;Fixed rare &amp;quot;hanging&amp;quot; bug in AIM Client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="november&amp;nbsp;2018_-_release_2.5.3"&gt;November&amp;nbsp;2018 - Release 2.5.3&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Created a reset command for Remote Automated Deployment Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Version and Import Metrics Logger Initialized correctly to fix null pointer exception&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october&amp;nbsp;2018_-_release_2.5.2"&gt;October&amp;nbsp;2018 - Release 2.5.2&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li&gt;Folder listener to auto trigger &amp;ldquo;Add Contents&amp;rdquo; action&lt;/li&gt;
&lt;li&gt;Field validation for import and versioning manager properties files&lt;/li&gt;
&lt;li&gt;Usage metrics collection to better understand tool use&lt;/li&gt;
&lt;li&gt;Updated error log messages&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;ADM UI: Handle apostrophes in app name&lt;/li&gt;
&lt;li&gt;ZIP type validation for Automated Import Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="&amp;nbsp;september&amp;nbsp;2018_-_release_2.5.1"&gt;&amp;nbsp;September&amp;nbsp;2018 - Release 2.5.1&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;New buildMultipleApps action&lt;/li&gt;
&lt;li class="li1"&gt;Check version of tools with -v or -version flags&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed ADM SQL errors with non-null statements and forward slash as delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.5.0"&gt;August&amp;nbsp;2018 - Release 2.5.0&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added Flyway DB version control tool to command line and AIM GUI&lt;/li&gt;
&lt;li class="li1"&gt;Allow import of DDL scripts or Flyway scripts without an application zip or patch zip&lt;/li&gt;
&lt;li class="li1"&gt;Added Folder Listener script that will run addContents automatically when a file is dropped into a folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added buildAllApps to list of approved actions&lt;/li&gt;
&lt;li class="li1"&gt;Set inspect_only properly in AIM&lt;/li&gt;
&lt;li class="li1"&gt;Fixed bug where repo would be cloned into a folder with an incorrect name&lt;/li&gt;
&lt;li class="li1"&gt;Passed in correct authentication token for buildAllApps and buildSingleApp&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.4.7"&gt;August&amp;nbsp;2018 - Release 2.4.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added &amp;quot;buildSingleApp&amp;quot; action to extract one app from multi app repo&lt;/li&gt;
&lt;li class="li1"&gt;Renamed &amp;quot;buildPackage&amp;quot; action to &amp;quot;buildAllApps&amp;quot; to better clarify the functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed miscellaneous issues with parsing SQL in DDL file&lt;/li&gt;
&lt;li class="li1"&gt;Mark/reset issue with large customization files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june&amp;nbsp;2018_-_release_2.4.6"&gt;June&amp;nbsp;2018 - Release 2.4.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added an import-manager.properties file to set default values for importing applications&lt;/li&gt;
&lt;li&gt;Automated versioning manager supports adding a package with multiple patches&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Application version UUID is updated when adding patches to a version control&lt;/li&gt;
&lt;li&gt;Import no longer fails when SQL in DDL file contains a &amp;quot;;&amp;quot;, &amp;quot;&amp;ndash;&amp;quot; or &amp;quot;/**/&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2018_-_release_2.4.5"&gt;March 2018 - Release 2.4.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add support for proxy configuration in the deployment client script with parameters &amp;quot;proxy_port&amp;quot; and &amp;quot;proxy_url&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2018_-_release_2.4.4"&gt;January&amp;nbsp;2018 - Release 2.4.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2018_-_release_2.4.3"&gt;January 2018 - Release 2.4.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.4&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2017_-_release_2.4.2"&gt;September 2017 - Release 2.4.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.3&lt;/li&gt;
&lt;li&gt;Better handling of end of line characters in the SQL scripts&lt;/li&gt;
&lt;li&gt;Support for customization file when deploying an application package&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2017_-_release_2.4.1"&gt;June 2017 - Release 2.4.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.2&lt;/li&gt;
&lt;li&gt;Fix defect preventing to execute DB scripts as part of a deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2017_-_release_2.4.0"&gt;January 2017 - Release 2.4.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.1&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october_2016_-_release_2.3"&gt;October 2016 - Release 2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 16.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.9"&gt;September 2016 - Release 2.2.9&lt;/h3&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Successfully deploy application packages containing new Datastore entities and new dependents on these entities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.8"&gt;September 2016 - Release 2.2.8&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with missing artifacts in package when using START_HASH and END_HASH.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.7"&gt;August 2016 - Release 2.2.7&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing updated Documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.6"&gt;August 2016 - Release 2.2.6&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New parameter no_update to build a package from the local repository without first performing a checkout&lt;/li&gt;
&lt;li&gt;New integrity control when checking in applications and patches&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.5"&gt;August 2016 - Release 2.2.5&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing new CDTs and updated CDTs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.4"&gt;June 2016 - Release 2.2.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.3"&gt;June 2016 - Release 2.2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Include the source code in all modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.2"&gt;June 2016 - Release 2.2.2&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new parameter appian_objects_repo_path to specify where the Appian artifacts are located in the repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="may_2016_-_release_2.2.0"&gt;May 2016 - Release 2.2.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for admin console packages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed update-database-schema to support native product capability of automatic database updates via datastore and administration console.&lt;/li&gt;
&lt;li&gt;Updated Web Browser UI style&lt;/li&gt;
&lt;li&gt;Removed option for &amp;quot;Automatically update the database schema when publishing the data stores&amp;quot; from the Web Browser UI&lt;/li&gt;
&lt;li&gt;Added support for admin console deployments&lt;/li&gt;
&lt;li&gt;Added support in command line for inspect_only parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2016_-_release_2.1.0"&gt;March 2016 - Release 2.1.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for input flexibility. Now, the command line for versioning manager supports all possible parameters.&lt;/li&gt;
&lt;li&gt;Allowed tags as inputs to start hash and end hash.&lt;/li&gt;
&lt;li&gt;Added inputs of the following predefined keywords: FIRST_COMMIT (which maps to first commit ever made) and LAST_COMMIT (the previous commit). NOTE: this is only allowed on the start hash input.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for 16.1.&lt;/li&gt;
&lt;li&gt;Added action for &amp;quot;Inspect Only&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Delivery, Platform&lt;/div&gt;
</description></item><item><title>Deployment Automation</title><link>https://community.appian.com/success/w/guide/3328/deployment-automation/revision/12</link><pubDate>Thu, 26 Oct 2023 18:31:59 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43c6339b-3b7e-4b44-ba4b-4a8c46753052</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3328/deployment-automation#comments</comments><description>Revision 12 posted to Guide by joel.larin on 10/26/2023 6:31:59 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian provides several DevOps tools to automate the &lt;a href="https://docs.appian.com/suite/help/latest/devops-with-appian.html#deploy" rel="noopener noreferrer" target="_blank"&gt;deployment of Appian applications&lt;/a&gt; such as Compare &amp;amp; Deploy and Deployment APIs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://docs.appian.com/suite/help/latest/Deploy_to_Target_Environments.html#prodlink-external-deployment-apis"&gt;Deployment APIs&lt;/a&gt; offer a set of API&amp;nbsp;endpoints that allow you to inspect and deploy applications, packages, import customization files, plug-ins, and execute database scripts.&amp;nbsp;These APIs allow you to programmatically trigger deployments and integrate your Appian release into an automated pipeline. You can set up your pipeline once and run it the exact same way for all future deployments, saving time and avoiding manual errors. It is recommended to use the Deployment APIs whenever possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The tools described in this play offer a few alternatives to Appian base product features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tightly integrate with a version control system to store and retrieve package files using the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Automated Versioning Manager (AVM)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Programmatically deploy Admin Console settings and applications using the &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) plug-in&lt;/a&gt;&amp;nbsp;and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="automated_versioning_manager"&gt;Automated Versioning Manager&lt;/h2&gt;
&lt;h3 id="summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;The Automated Versioning Manager - available on the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt; - is a tool that helps managing Appian applications and database DDL files in a version control system. Given an Appian application ZIP file, the Automated Versioning Manager performs the following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;It unzips the application and organizes the artifact XML files in the repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It automates the check-in and checkout operations with the version control system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It generates application packages for import in Appian based on the contents of the repository and a range of changes to include.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal of this tool is to facilitate the adoption and usage of a version control system to perform configuration management of the Appian applications and database DDL files.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/1374.deployment_5F00_automation_5F00_00.png" /&gt;&lt;/div&gt;
&lt;h3 id="features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Version Control integration (Git, SVN)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supports Appian applications and patches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate import package from hash ranges&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Folder Listener to add contents to Version Control&lt;/li&gt;
&lt;li&gt;Supports GitHub, GitLab, and BitBucket for Version Control&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage"&gt;Usage&lt;/h3&gt;
&lt;p&gt;The automated versioning tool is a script to be run from the command line or terminal. It contains a wrapper for Windows (version-application.bat) and Linux (version-application.sh) systems. This document will first discuss how to use the tool in general, and then discuss use cases to give concrete examples. All parameters can be passed either on the command line or in the properties file.&lt;/p&gt;
&lt;h3 id="script_execution"&gt;Script Execution&lt;/h3&gt;
&lt;p&gt;To run the script, open a command window and navigate to the directory where the automated versioning scripts are located. They are named version-application.bat or version-application.sh.&lt;/p&gt;
&lt;p&gt;Use the -h or -help parameters to view the help menu within the script. The parameters are described here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Required Parameters (required for all four actions: addContents, buildAllApps, buildSingleApp, buildMultipleApps, and updateLocalRepo)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-action - Selects which action of the script to run. Acceptable values are: addContents, updateLocalRepo, buildAllApps,&amp;nbsp;buildSingleApp, and&amp;nbsp;buildMultipleApps. Each action is detailed in the use cases below.&lt;/li&gt;
&lt;li&gt;-vc_username -The username associated with the version control (Git or SVN) account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-vc_password -Please check the Security Settings of the version control account. If you have 2-factor authentication enabled, the password requires the version control account token. If you do NOT have 2-factor authentication enabled, the password is the one associated with the version control account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for addContents action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-application_path - The path on your filesystem where the application ZIP is located.&lt;/li&gt;
&lt;li&gt;-admin_console_path - The path on your filesystem where the admin console ZIP file is located.&lt;/li&gt;
&lt;li&gt;-ddl_path - List of comma-separated paths for the DDL files to be included in the deployment package.&lt;/li&gt;
&lt;li&gt;-flyway_path&amp;nbsp;- List of comma-separated paths for the directories to execute DB migrations via Flyway.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;. To learn how&amp;nbsp;the Automated Import Manager&amp;nbsp;uses Flyway, refer to &lt;a href="#aim_features"&gt;AIM Features&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-ddl_ds - List of comma-separated datasources associated with the provided DDL files. Must provide the same number of entries as number of DDL files specified with the -ddl_path option or number of directories specified with the -flyway_path option. &lt;strong&gt;NOTE: the order of the specified datasource names must match the order of the script paths specified.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-uuid - The UUID of the application to which the contents of the application should be added. This option is only used if deploying a patch application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- The&amp;nbsp;name of the application to which the contents of the application should be added. This option is only used if deploying a&amp;nbsp;patch&amp;nbsp;application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-commit_message - The message that will be associated with the commit. If not included, a default commit message Committed by @username is provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildAllApps&amp;nbsp;action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-start_hash - Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit. &lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash - End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildSingleApp action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid - The UUID of the application you want to build.&lt;/li&gt;
&lt;li&gt;-application_name - The name of the application you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildMultipleApps action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid&amp;nbsp;- Comma separated list of UUIDs of the applications you want to build.&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- Comma separated list of names of the applications that you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update&amp;nbsp;- Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for updateLocalRepo action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are no additional options (other than required options) for updateLocalRepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Additional Parameters&lt;/strong&gt; - These parameters are REQUIRED, and may be specified here or in the properties file (described in the following section). If they are specified in both locations, the parameters specified in the command line take precedence.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-version_control_type - The version control type used, either GIT or SVN.&lt;/li&gt;
&lt;li&gt;-local_repo_path - The path on the filesystem where the local repository is located. All files on the remote repository are cloned to this path. Example: C:\\MyFiles\\ChangeManagementRepo. &lt;strong&gt;NOTE: if using Windows, be sure to include double forward slashes (as seen in the example) for path separation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-appian_objects_repo_path - Path to the folder containing the Appian objects in the repository. This path is relative to the path of the local repository. If not specified, the Appian objects are checked out to and committed from the root of the local repository path.&lt;/li&gt;
&lt;li&gt;-repo_url - The URL that defines the remote repository. Example: https://github.com/git-username/project-name.git, svn+ssh://svn.code.sf.net/p/project-name/code&lt;/li&gt;
&lt;li&gt;-package_path - &lt;em&gt;For buildAllApps,&amp;nbsp;&lt;em&gt;buildSingleApp, and&amp;nbsp;&lt;em&gt;&lt;em&gt;buildMultipleApps&lt;/em&gt;&lt;/em&gt;&amp;nbsp;&lt;/em&gt;only.&lt;/em&gt; The path on the filesystem where packages are generated. Must include filename of package.&lt;/li&gt;
&lt;li&gt;-branch_name - Branch to check out and use (if not master)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="configuring-using-the-properties-file"&gt;Configuring using the Properties File&lt;/h3&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the configuration file version-manager.properties. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;In case an option is specified both on the command line and in the properties file, the command line value takes precedence and is used.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false &amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;p&gt;If used, the property&amp;nbsp;&lt;code&gt;appianObjectRepoPath&lt;/code&gt;&amp;nbsp;must not reference a file path more than one level below the root directory of the repository. Ex.&amp;nbsp;appianObjectRepoPath =&amp;nbsp;/appian/objects&amp;nbsp;is an acceptable configuration but&amp;nbsp;appianObjectRepoPath = /appian/folder/objects is not valid.&lt;/p&gt;
&lt;h3 id="use-cases"&gt;Use Cases&lt;/h3&gt;
&lt;h4 id="1-new-developer-joins-team-updatelocalrepo"&gt;#1: New developer joins team (updateLocalRepo)&lt;/h4&gt;
&lt;p&gt;In this use case, a new developer has joined the team and wants to get a copy of all the work completed so far. The developer should:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Update version-manager.properties with the appropriate fields. See the &lt;a href="#script_execution"&gt;Script Setup&lt;/a&gt; section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;updateLocalRepo&lt;/strong&gt; as the action flag. The developer must provide the username and password for authenticating against their version control system (-vc_username, -vc_password).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action updateLocalRepo -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, the developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;h4 id="2-developer-adds-artifacts-to-the-repository-addcontents"&gt;#2: Developer adds artifacts to the repository (addContents)&lt;/h4&gt;
&lt;p&gt;In this use case, the developer on a team has been working in the development environment and has changes he wishes to add to the repository. The changes may be a new application or a patch to an existing application. Note: the repository serves as a record of changes, and can be thought of as an additional Appian environment. The steps involved are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the Appian development environment, create an application (or a patch) that contains the changed objects.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Export those changes and download the application ZIP file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;addContents&lt;/strong&gt; as the action flag. The developer must provide the path of the ZIP file they exported (-application_path) from Appian in step 2. They must also provide the username and password for authenticating their version control system (-vc_username, -vc_password). &lt;strong&gt;NOTE: these are NOT Appian credentials.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Optional: if the application specified for -application_path is a patch, update the -uuid option to specify the parent application&amp;rsquo;s uuid. &lt;em&gt;The script will exit with error if a patch application ZIP is provided but no uuid is passed in.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Optional: if DDL scripts have been modified, specify the path(s) and their associated JDBC datasource names. NOTE: The same number of DDL scripts and datasource names must be entered into the script, even if the datasource is the same for all scripts. For example: the developer wishes to add two ddl scripts located at C:\DDLs\script1.sql and C:\DDLs\script2.sql. They do so by setting the -ddl_path option as C:\DDLs\script1.sql,C:\DDLs\script2.sql If both scripts are to be executed on jdbc/AppianDS, they must set the -ddl_ds option as jdbc/AppianDS,jdbc/AppianDS. Note that the datasource name is passed in &lt;strong&gt;&lt;em&gt;twice&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: include a custom commit message using the -commit_message option&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="caution"&gt;WARNING: It is HIGHLY recommended that DDL scripts are developed INCREMENTALLY. That is, do not modify existing DDL scripts - instead, create new scripts that only contain the commands the designer wishes to execute.This is because if the designer updates an existing DDL script, all lines in the script will be executed. This can lead to data integrity issues if not managed properly. PLEASE EXERCISE CAUTION WHEN MODIFYING EXISTING DDL SCRIPTS. Example: if the designer modifies a script that contains commands to drop and recreate a table, the script will drop and recreate the table even if the designer did not modify that section.&lt;/div&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action addContents -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -application_path &amp;quot;C:\App.zip&amp;quot; -ddl_ds jdbc/AppianAnywhere -ddl_path “C:\script1.sql” -commit_message “Adding account executive record”&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When the script is executed, three things occur:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The application ZIP is unzipped and placed into the local repository, and the DDL files are placed into a ddl_files folder within the local repository. If the -uuid option is selected, the appropriate application xml file is updated.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The changes are committed (and pushed, if using Git) to the remote repository.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When the package is imported into Appian, all lines within script1.sql will be executed and contents within the application ZIP are imported.&lt;/p&gt;
&lt;p&gt;Using Folder Listener:&lt;/p&gt;
&lt;p&gt;Alternatively, instead of running the script, the developer can execute&amp;nbsp;avm-folder-listener-&amp;lt;os&amp;gt;&amp;nbsp;in the&amp;nbsp;folder-listener&amp;nbsp;directory. The following command prompt will appear:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x960/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png" /&gt;&lt;/div&gt;
&lt;p&gt;The developer will provide the directory that the application or patch ZIPs will be dropped into as well as the directory of the automated versioning manager tool. Otherwise, the default directories will be used.&lt;/p&gt;
&lt;p&gt;Once setup, the developer can drag the desired application ZIP into the specified directory and the application ZIP will be versioned in their GIT repository. This is assuming that all necessary fields have already been configured in the file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;p&gt;If the developer is supplying a patch ZIP, the console will prompt the developer for the associated application uuid or name. Once supplied, the patch will be deployed to the specified environment in the&amp;nbsp;file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;h4 id="3-build-master-generates-new-rc-deployment-package-buildpackage"&gt;#3: Build master generates new RC deployment package (buildAllApps)&lt;/h4&gt;
&lt;p&gt;In this use case, all additions made by the team have been incorporated into the remote repository and have gone through sufficient testing. The build master is now ready to promote a new package to the higher environment. The new package should include all additions and changes since the last deployment. The build master will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;(If not done previously) Update version-manager.properties with the appropriate fields. See the Script Setup section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;buildAllApps&lt;/strong&gt; as the action flag. The build master must provide the username and password for authenticating against their version control system (-vc_username, -vc_password). To get a specific set of changes, input a value for the -start_hash option and the -end_hash option. This will generate the package with all new and changed files between the two hash options.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;NOTE: the package will &lt;strong&gt;NOT&lt;/strong&gt; include the changes introduced in the start hash, but &lt;strong&gt;WILL&lt;/strong&gt; include changes introduced in the end hash.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Command:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action buildAllApps -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -start_hash ac37459 -end_hash 6e83b42&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, it generates a package at the location specified by the packagePath field in version-manager.properties.&lt;/p&gt;
&lt;p&gt;Finally, the build master will import the RC package into the higher environment using the Automated Import tool as described later in this play.&lt;/p&gt;
&lt;h3 id="_using_subversion_as_version_control_system"&gt;Using Subversion as Version Control System&lt;/h3&gt;
&lt;p&gt;To allow the Automated Versioning Manager to perform the checkout and commit operations with Subversion, the tool assumes the common Subversion project structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;trunk&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;branches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tags&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The location of the repository root must be provided by the property repoURL.&lt;/p&gt;
&lt;p&gt;Example: The following version-manager.properties configuration checks out the release 1 branch from the repository located at &lt;code&gt;https://svn.code.sf.net/p/deploymentautomationexample/code&lt;/code&gt; and commit all changes to the branch &amp;quot;release1&amp;quot;. Optionally, you may specify each of these parameters as command line arguments instead of using the version-manager.properties file.&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=SVN

repoUrl=https://svn.code.sf.net/p/deploymentautomationexample/code

branchName=branches/release1&lt;/pre&gt;&lt;/pre&gt;
&lt;h3 id="_using_git_as_version_control_system"&gt;Using Git as Version Control System&lt;/h3&gt;
&lt;p&gt;To use Git with the Automated Versioning Manager, properties may be specified on the command line or version-manager.properties should be updated as follows:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=GIT

repoUrl=https://github.com/gituser/testgitrepo.git

branchName=newbranch&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;branchName is an optional field. If the branch does not exist remotely, the tool will automatically create it on the local machine and push it to the remote repository as soon as addContents is executed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: if you are planning to check out a private repository, use the Git SSH URL rather than the HTTPS URL.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="automated_import_manager"&gt;Automated Import Manager&lt;/h2&gt;
&lt;h3 id="_summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;With the Cloud-approved Appian &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager plug-in&lt;/a&gt; and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager client&lt;/a&gt;&amp;nbsp;available on the AppMarket, users can automatically deploy applications and patch contents (either applications from Appian OR packages generated from the &lt;a href="#automated_versioning_manager"&gt;Automated Versioning Manager&lt;/a&gt;) to any environment. Users will have three options for deployment: the tool can either deploy from the tool&amp;rsquo;s user interface in one click, trigger the deployment from an external CI tool, or deploy from the command line.&lt;/p&gt;
&lt;p&gt;The Automated Import Manager automates the process of inspecting the application, executing DDL scripts, &lt;strong&gt;updating CDTs, republishing the appropriate datastores&lt;/strong&gt;, and importing the application.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4011.deployment_5F00_automation_5F00_02.png" /&gt;&lt;/div&gt;
&lt;h3 id="aim_features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect Application:&lt;/strong&gt; This tool will automatically mimic the &amp;quot;Inspect&amp;quot; functionality that exists within Appian&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Validating Application Content:&lt;/strong&gt; In addition to inspecting the application, the tool will ensure all CDT dependents are included to avoid objects pointing to older versions.&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute DDL Scripts:&lt;/strong&gt; DDL scripts can be uploaded and automatically executed. NOTE: For Microsoft SQL Server, only Transact-SQL statements are valid.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute Migrations with Flyway:&amp;nbsp;&lt;/strong&gt;Flyway is a tool used for managing database migrations. It makes it easier to track SQL script versions and not re-execute SQL scripts that have already been run. If a Flyway&amp;nbsp;directory is provided, the Automated Import Manager will automatically&amp;nbsp;execute migrations against the corresponding datasource.&amp;nbsp;Learn more about Flyway&amp;nbsp;&lt;a href="https://documentation.red-gate.com/fd/quickstart-how-flyway-works-184127223.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Update CDTs:&lt;/strong&gt; Users are no longer required to delete CDTs before updating them, this tool will perform this step automatically&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import Application and admin console configuration:&lt;/strong&gt; Automatically import an application with an optional customization file&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Republish Datastores:&lt;/strong&gt; After application import, datastores will be automatically published or republished&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add Patches:&lt;/strong&gt; Automatically add patch contents to a specified existing application&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage_"&gt;Usage&lt;/h3&gt;
&lt;h3 id="1-deploy-from-the-web-browser-ui"&gt;&amp;nbsp;Deploy from the Web Browser UI&lt;/h3&gt;
&lt;p&gt;The tool collects usage metrics by default. To opt-out of metrics collection, check the below option on the Web Browser UI:&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1600x480/__key/communityserver-wikis-components-files/00-00-00-00-46/0702.pastedimage1539370754100v1.png" /&gt;&lt;/div&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/796x1133/__key/communityserver-wikis-components-files/00-00-00-00-46/4186.Screen-Shot-2018_2D00_08_2D00_30-at-3.22.31-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Log into Appian as a system administrator&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the Deployment Automation UI available at the URL: &amp;lt;appian&amp;gt;/suite/plugins/servlet/deploymentautomation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Upload the patch or application you wish to import.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If this application is a patch, select the parent application to which patch contents should be added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the new application requires changes to the database schema (i.e. new or updated CDTs) you must choose one of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upload the corresponding DDL script(s) that accurately reflect these additions and/or updates.&lt;/li&gt;
&lt;li&gt;Set the datastore to &amp;quot;Automatically update database schema&amp;quot; and set &amp;quot;Allow Database Schema Changes Through Data Stores&amp;quot; in the Deployment section of the Appian Administration Console&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click on the button &amp;quot;Start Deployment&amp;quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;During the deployment, the screen is automatically refreshed every 5 seconds with the latest status of the deployment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the deployment is complete, the browser will update with a status page.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8228.deployment_5F00_automation_5F00_04.png" /&gt;&lt;/div&gt;
&lt;h3 id="2-deploy-from-the-command-line-script"&gt;&amp;nbsp;Deploy from the Command Line Script&lt;/h3&gt;
&lt;p&gt;The command line script - the client - can be downloaded from the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false&amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x2000/__key/communityserver-wikis-components-files/00-00-00-00-46/7723.Screen-Shot-2018_2D00_08_2D00_30-at-3.29.54-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open a command window in the same folder to which the client script and supporting libraries were unzipped.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the help guide pictured above, run the proper command to automatically import the application. Use -h or -help to view this menu at any time.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;-ac_customization_path: Indicates the path to the customization file to use when deploying the admin console&amp;nbsp;package or the application package.&lt;/li&gt;
&lt;li&gt;-admin_console_path: Indicates the path to the admin console file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-application_path: Indicates the path to the application file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-ddl_ds: Optional, use only if providing DDL scripts. The name of the datasource to use with the corresponding DDL script. Use a comma separator to enter multiple datasources.&lt;/li&gt;
&lt;li&gt;-ddl_path: Optional, use only if providing DDL scripts. Indicates the path to the DDL scripts to execute. Use a comma separator to enter multiple DDL script paths. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-flyway_path: Optional, use only if providing directories to execute DB migrations via Flyway. Use a comma separator to enter multiple directory paths. NOTE: Use quotations around the entry.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-force_import: A boolean flag which specifies whether or not the import ignores impact analysis results.If true, the import will occur even if objects with CDT references are missing&lt;/li&gt;
&lt;li&gt;-import_customization_path: Indicates the path to the import customization file to use&lt;/li&gt;
&lt;li&gt;-inspect_only: Optional, use to run an inspection of the package. Indicates the package should not be deployed but inspected only.&lt;/li&gt;
&lt;li&gt;-password: Password of the Appian user account&lt;/li&gt;
&lt;li&gt;-proxy_port: Optional, port of the proxy server to use to connect to Appian. This parameter is only used if the parameter -proxy_url is defined. The default value is 8080.&lt;/li&gt;
&lt;li&gt;-proxy_url: Optional, URL of the proxy to use to connect to Appian.&lt;/li&gt;
&lt;li&gt;-url: URL of the environment, of the format &lt;code&gt;https://example.appian.com/suite&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;-username: Username of the Appian user account to use for deployment&lt;/li&gt;
&lt;li&gt;-uuid: UUID of the application to which patch contents will be added&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy the application by typing the command deploy-application.bat and including the relevant parameters. Your command will look something like the one pictured below.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;deploy-application.bat -application_path &amp;quot;PATH TO APPLICATION ZIP&amp;quot; -username SERVICE_ACCOUNT_USERNAME -password SERVICE_ACCOUNT_PASSWORD -url APPIAN_URL -ddl_path &amp;quot;PATH TO DLL 1, PATH TO DLL 2&amp;quot; -ddl_ds jdbc/Appian1,jdbc/Appian2&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the &lt;strong&gt;configuration file&amp;nbsp;import-manager.properties&lt;/strong&gt;. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;During the deployment, the prompt is automatically refreshed every 5 seconds with the latest status of the deployment. When the deployment is complete, a status response (like the one pictured below) will display.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6746.deployment_5F00_automation_5F00_06.png" /&gt;&lt;/div&gt;
&lt;h3 id="3-deploy-from-an-external-continuous-integration-tool"&gt;Deploy from an External Continuous Integration tool&lt;/h3&gt;
&lt;p&gt;Additional Requirement:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An existing external Continuous Integration tool (such as Jenkins or Hudson) that is properly configured&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The steps below provide the high level steps to deploy an application from Jenkins.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new external job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the job to run the import script using the guidance in Deployment Option #2 listed above&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute the job&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8132.deployment_5F00_automation_5F00_07.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;When the deployment is complete, check the status page verify that the import was successful.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/5078.deployment_5F00_automation_5F00_08.png" /&gt;&lt;/div&gt;
&lt;h2 id="troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;h3 id="deciphering_script_error_messages"&gt;Deciphering Script Error Messages&lt;/h3&gt;
&lt;h3 id="inspect-failure"&gt;Inspect Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails on inspect, please check the error log and inspect log to determine the root cause of the inspect error. Additionally, please refer to the &lt;a href="https://docs.appian.com/suite/help/23.3/inspect-deployment-packages.html"&gt;Inspect Package&lt;/a&gt; documentation to determine what common inspect issues may arise.&lt;/p&gt;
&lt;h3 id="package-validation-failure"&gt;Package Validation Failure&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;This feature is only for Appian 7.11 and above.&lt;/strong&gt; If the Automated Import script fails during package validation, this means that objects with certain CDT dependencies are missing. Please check the error message which will include the list of missing required dependencies. Appian recommends to include these dependencies in the application prior to importing.&lt;/p&gt;
&lt;p&gt;In case you want to proceed with deploying the application regardless of missing CDT dependencies, use the flag -f.&lt;/p&gt;
&lt;h3 id="import-failure"&gt;Import Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails during import, it will produce an error log that contains the reason(s) for import failure. Please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Application_Deployment_Guidelines.html#Issues_During_Export_or_Import"&gt;Application Deployment Guidelines&lt;/a&gt; documentation on import issues to determine the root cause of the import failure.&lt;/p&gt;
&lt;h3 id="invalid-credentials"&gt;Invalid Credentials&lt;/h3&gt;
&lt;p&gt;Please ensure that these credentials are associated with an active Appian system administrator account. Basic user credentials cannot be used.&lt;/p&gt;
&lt;h3 id="connection-refused-with-deployment-command-line-script"&gt;Connection Refused With Deployment Command Line Script&lt;/h3&gt;
&lt;p&gt;A &amp;quot;Connection Refused&amp;quot; error could be the result of using the wrong URL when executing the script. The URL provided as a parameter must:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;include the suffix &amp;quot;/suite&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include a port number if not using the port 80 with HTTP or port 443 with HTTPS&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="release_notes"&gt;Release Notes&lt;/h2&gt;
&lt;h3 id="september&amp;nbsp;2021_-_release_2.5.13"&gt;September&amp;nbsp;2021 - Release 2.5.13&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed an issue where setting &amp;quot;appianObjectsRepoPath&amp;quot; prevented a package that included a patches.xml file from being processed successfully&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2021_-_release_2.5.12"&gt;March&amp;nbsp;2021 - Release 2.5.12&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Updated the link to the import log in the ADM servlet after a change was made to the Appian API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed a bug that was preventing Flyway files from being included in metadata.properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september&amp;nbsp;2020_-_release_2.5.11"&gt;September&amp;nbsp;2020 - Release 2.5.11&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Upgraded Flyway version to 6.5.5 for compatibility with MariaDB.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2020_-_release_2.5.10"&gt;August&amp;nbsp;2020 - Release 2.5.10&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added the ability to dynamically generate the Metadata file for the &amp;quot;buildAllApps&amp;quot; action to reflect only the list of database scripts that are included in the package for a given commit range.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li class="li1"&gt;Fixed the interpretation of &amp;quot;appianObjectsRepoPath&amp;quot; on Windows platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="december&amp;nbsp;2019&amp;nbsp;-_release_2.5.9"&gt;December&amp;nbsp;2019&amp;nbsp;- Release 2.5.9&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added DNS proxy support to ADM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AIM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AVM&lt;/li&gt;
&lt;li class="li1"&gt;Added support for special characters in passwords in ADM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="july&amp;nbsp;2019&amp;nbsp;-_release_2.5.8"&gt;July&amp;nbsp;2019&amp;nbsp;- Release 2.5.8&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;Fixed the problem with obtaining TransactionManager and creating DataConfiguration against latest the Appian version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april&amp;nbsp;2019&amp;nbsp;-_release_2.5.7"&gt;April&amp;nbsp;2019&amp;nbsp;- Release 2.5.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added commit message prompt to folder listener&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed Windows issue with pushing file updates to versioning manager&lt;/li&gt;
&lt;li class="li1"&gt;Fixed import patch failure not adding newly created objects issue&lt;/li&gt;
&lt;li class="li1"&gt;Fixed semicolon separator parsing issue&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2019_-_release_2.5.6"&gt;March&amp;nbsp;2019 - Release 2.5.6&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added proxy authentication support for import client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="february&amp;nbsp;2019_-_release_2.5.5"&gt;February&amp;nbsp;2019 - Release 2.5.5&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed DDL paths bug&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2019_-_release_2.5.4"&gt;January&amp;nbsp;2019 - Release 2.5.4&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Improved descriptions of errors encountered during deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed &amp;quot;Connection Refused&amp;quot; bug when running on a Jenkins server&lt;/li&gt;
&lt;li&gt;Fixed &amp;quot;buildSingleApp&amp;quot; AVM bug when specifying an appianObjectsRepoPath&lt;/li&gt;
&lt;li&gt;Fixed rare &amp;quot;hanging&amp;quot; bug in AIM Client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="november&amp;nbsp;2018_-_release_2.5.3"&gt;November&amp;nbsp;2018 - Release 2.5.3&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Created a reset command for Remote Automated Deployment Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Version and Import Metrics Logger Initialized correctly to fix null pointer exception&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october&amp;nbsp;2018_-_release_2.5.2"&gt;October&amp;nbsp;2018 - Release 2.5.2&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li&gt;Folder listener to auto trigger &amp;ldquo;Add Contents&amp;rdquo; action&lt;/li&gt;
&lt;li&gt;Field validation for import and versioning manager properties files&lt;/li&gt;
&lt;li&gt;Usage metrics collection to better understand tool use&lt;/li&gt;
&lt;li&gt;Updated error log messages&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;ADM UI: Handle apostrophes in app name&lt;/li&gt;
&lt;li&gt;ZIP type validation for Automated Import Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="&amp;nbsp;september&amp;nbsp;2018_-_release_2.5.1"&gt;&amp;nbsp;September&amp;nbsp;2018 - Release 2.5.1&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;New buildMultipleApps action&lt;/li&gt;
&lt;li class="li1"&gt;Check version of tools with -v or -version flags&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed ADM SQL errors with non-null statements and forward slash as delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.5.0"&gt;August&amp;nbsp;2018 - Release 2.5.0&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added Flyway DB version control tool to command line and AIM GUI&lt;/li&gt;
&lt;li class="li1"&gt;Allow import of DDL scripts or Flyway scripts without an application zip or patch zip&lt;/li&gt;
&lt;li class="li1"&gt;Added Folder Listener script that will run addContents automatically when a file is dropped into a folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added buildAllApps to list of approved actions&lt;/li&gt;
&lt;li class="li1"&gt;Set inspect_only properly in AIM&lt;/li&gt;
&lt;li class="li1"&gt;Fixed bug where repo would be cloned into a folder with an incorrect name&lt;/li&gt;
&lt;li class="li1"&gt;Passed in correct authentication token for buildAllApps and buildSingleApp&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.4.7"&gt;August&amp;nbsp;2018 - Release 2.4.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added &amp;quot;buildSingleApp&amp;quot; action to extract one app from multi app repo&lt;/li&gt;
&lt;li class="li1"&gt;Renamed &amp;quot;buildPackage&amp;quot; action to &amp;quot;buildAllApps&amp;quot; to better clarify the functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed miscellaneous issues with parsing SQL in DDL file&lt;/li&gt;
&lt;li class="li1"&gt;Mark/reset issue with large customization files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june&amp;nbsp;2018_-_release_2.4.6"&gt;June&amp;nbsp;2018 - Release 2.4.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added an import-manager.properties file to set default values for importing applications&lt;/li&gt;
&lt;li&gt;Automated versioning manager supports adding a package with multiple patches&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Application version UUID is updated when adding patches to a version control&lt;/li&gt;
&lt;li&gt;Import no longer fails when SQL in DDL file contains a &amp;quot;;&amp;quot;, &amp;quot;&amp;ndash;&amp;quot; or &amp;quot;/**/&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2018_-_release_2.4.5"&gt;March 2018 - Release 2.4.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add support for proxy configuration in the deployment client script with parameters &amp;quot;proxy_port&amp;quot; and &amp;quot;proxy_url&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2018_-_release_2.4.4"&gt;January&amp;nbsp;2018 - Release 2.4.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2018_-_release_2.4.3"&gt;January 2018 - Release 2.4.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.4&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2017_-_release_2.4.2"&gt;September 2017 - Release 2.4.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.3&lt;/li&gt;
&lt;li&gt;Better handling of end of line characters in the SQL scripts&lt;/li&gt;
&lt;li&gt;Support for customization file when deploying an application package&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2017_-_release_2.4.1"&gt;June 2017 - Release 2.4.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.2&lt;/li&gt;
&lt;li&gt;Fix defect preventing to execute DB scripts as part of a deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2017_-_release_2.4.0"&gt;January 2017 - Release 2.4.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.1&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october_2016_-_release_2.3"&gt;October 2016 - Release 2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 16.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.9"&gt;September 2016 - Release 2.2.9&lt;/h3&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Successfully deploy application packages containing new Datastore entities and new dependents on these entities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.8"&gt;September 2016 - Release 2.2.8&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with missing artifacts in package when using START_HASH and END_HASH.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.7"&gt;August 2016 - Release 2.2.7&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing updated Documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.6"&gt;August 2016 - Release 2.2.6&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New parameter no_update to build a package from the local repository without first performing a checkout&lt;/li&gt;
&lt;li&gt;New integrity control when checking in applications and patches&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.5"&gt;August 2016 - Release 2.2.5&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing new CDTs and updated CDTs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.4"&gt;June 2016 - Release 2.2.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.3"&gt;June 2016 - Release 2.2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Include the source code in all modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.2"&gt;June 2016 - Release 2.2.2&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new parameter appian_objects_repo_path to specify where the Appian artifacts are located in the repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="may_2016_-_release_2.2.0"&gt;May 2016 - Release 2.2.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for admin console packages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed update-database-schema to support native product capability of automatic database updates via datastore and administration console.&lt;/li&gt;
&lt;li&gt;Updated Web Browser UI style&lt;/li&gt;
&lt;li&gt;Removed option for &amp;quot;Automatically update the database schema when publishing the data stores&amp;quot; from the Web Browser UI&lt;/li&gt;
&lt;li&gt;Added support for admin console deployments&lt;/li&gt;
&lt;li&gt;Added support in command line for inspect_only parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2016_-_release_2.1.0"&gt;March 2016 - Release 2.1.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for input flexibility. Now, the command line for versioning manager supports all possible parameters.&lt;/li&gt;
&lt;li&gt;Allowed tags as inputs to start hash and end hash.&lt;/li&gt;
&lt;li&gt;Added inputs of the following predefined keywords: FIRST_COMMIT (which maps to first commit ever made) and LAST_COMMIT (the previous commit). NOTE: this is only allowed on the start hash input.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for 16.1.&lt;/li&gt;
&lt;li&gt;Added action for &amp;quot;Inspect Only&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment Automation</title><link>https://community.appian.com/success/w/guide/3328/deployment-automation/revision/11</link><pubDate>Thu, 26 Oct 2023 18:29:35 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43c6339b-3b7e-4b44-ba4b-4a8c46753052</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3328/deployment-automation#comments</comments><description>Revision 11 posted to Guide by joel.larin on 10/26/2023 6:29:35 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian provides several DevOps tools to automate the &lt;a href="https://docs.appian.com/suite/help/latest/devops-with-appian.html#deploy" rel="noopener noreferrer" target="_blank"&gt;deployment of Appian applications&lt;/a&gt; such as Compare &amp;amp; Deploy and Deployment APIs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://docs.appian.com/suite/help/latest/Deploy_to_Target_Environments.html#prodlink-external-deployment-apis"&gt;Deployment APIs&lt;/a&gt; offer a set of API&amp;nbsp;endpoints that allow you to inspect and deploy applications, packages, import customization files, plug-ins, and execute database scripts.&amp;nbsp;These APIs allow you to programmatically trigger deployments and integrate your Appian release into an automated pipeline. You can set up your pipeline once and run it the exact same way for all future deployments, saving time and avoiding manual errors. It is recommended to use the Deployment APIs whenever possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The tools described in this play offer a few alternatives to Appian base product features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tightly integrate with a version control system to store and retrieve package files using the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Automated Versioning Manager (AVM)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Programmatically deploy Admin Console settings and applications using the &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) plug-in&lt;/a&gt;&amp;nbsp;and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="automated_versioning_manager"&gt;Automated Versioning Manager&lt;/h2&gt;
&lt;h3 id="summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;The Automated Versioning Manager - available on the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt; - is a tool that helps managing Appian applications and database DDL files in a version control system. Given an Appian application ZIP file, the Automated Versioning Manager performs the following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;It unzips the application and organizes the artifact XML files in the repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It automates the check-in and checkout operations with the version control system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It generates application packages for import in Appian based on the contents of the repository and a range of changes to include.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal of this tool is to facilitate the adoption and usage of a version control system to perform configuration management of the Appian applications and database DDL files.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/1374.deployment_5F00_automation_5F00_00.png" /&gt;&lt;/div&gt;
&lt;h3 id="features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Version Control integration (Git, SVN)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supports Appian applications and patches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate import package from hash ranges&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Folder Listener to add contents to Version Control&lt;/li&gt;
&lt;li&gt;Supports GitHub, GitLab, and BitBucket for Version Control&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage"&gt;Usage&lt;/h3&gt;
&lt;p&gt;The automated versioning tool is a script to be run from the command line or terminal. It contains a wrapper for Windows (version-application.bat) and Linux (version-application.sh) systems. This document will first discuss how to use the tool in general, and then discuss use cases to give concrete examples. All parameters can be passed either on the command line or in the properties file.&lt;/p&gt;
&lt;h3 id="script_execution"&gt;Script Execution&lt;/h3&gt;
&lt;p&gt;To run the script, open a command window and navigate to the directory where the automated versioning scripts are located. They are named version-application.bat or version-application.sh.&lt;/p&gt;
&lt;p&gt;Use the -h or -help parameters to view the help menu within the script. The parameters are described here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Required Parameters (required for all four actions: addContents, buildAllApps, buildSingleApp, buildMultipleApps, and updateLocalRepo)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-action - Selects which action of the script to run. Acceptable values are: addContents, updateLocalRepo, buildAllApps,&amp;nbsp;buildSingleApp, and&amp;nbsp;buildMultipleApps. Each action is detailed in the use cases below.&lt;/li&gt;
&lt;li&gt;-vc_username -The username associated with the version control (Git or SVN) account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-vc_password -Please check the Security Settings of the version control account. If you have 2-factor authentication enabled, the password requires the version control account token. If you do NOT have 2-factor authentication enabled, the password is the one associated with the version control account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for addContents action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-application_path - The path on your filesystem where the application ZIP is located.&lt;/li&gt;
&lt;li&gt;-admin_console_path - The path on your filesystem where the admin console ZIP file is located.&lt;/li&gt;
&lt;li&gt;-ddl_path - List of comma-separated paths for the DDL files to be included in the deployment package.&lt;/li&gt;
&lt;li&gt;-flyway_path&amp;nbsp;- List of comma-separated paths for the directories to execute DB migrations via Flyway.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;. To learn how&amp;nbsp;the Automated Import Manager&amp;nbsp;uses Flyway, refer to &lt;a href="#aim_features"&gt;AIM Features&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-ddl_ds - List of comma-separated datasources associated with the provided DDL files. Must provide the same number of entries as number of DDL files specified with the -ddl_path option or number of directories specified with the -flyway_path option. &lt;strong&gt;NOTE: the order of the specified datasource names must match the order of the script paths specified.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-uuid - The UUID of the application to which the contents of the application should be added. This option is only used if deploying a patch application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- The&amp;nbsp;name of the application to which the contents of the application should be added. This option is only used if deploying a&amp;nbsp;patch&amp;nbsp;application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-commit_message - The message that will be associated with the commit. If not included, a default commit message Committed by @username is provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildAllApps&amp;nbsp;action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-start_hash - Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit. &lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash - End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildSingleApp action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid - The UUID of the application you want to build.&lt;/li&gt;
&lt;li&gt;-application_name - The name of the application you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildMultipleApps action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid&amp;nbsp;- Comma separated list of UUIDs of the applications you want to build.&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- Comma separated list of names of the applications that you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update&amp;nbsp;- Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for updateLocalRepo action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are no additional options (other than required options) for updateLocalRepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Additional Parameters&lt;/strong&gt; - These parameters are REQUIRED, and may be specified here or in the properties file (described in the following section). If they are specified in both locations, the parameters specified in the command line take precedence.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-version_control_type - The version control type used, either GIT or SVN.&lt;/li&gt;
&lt;li&gt;-local_repo_path - The path on the filesystem where the local repository is located. All files on the remote repository are cloned to this path. Example: C:\\MyFiles\\ChangeManagementRepo. &lt;strong&gt;NOTE: if using Windows, be sure to include double forward slashes (as seen in the example) for path separation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-appian_objects_repo_path - Path to the folder containing the Appian objects in the repository. This path is relative to the path of the local repository. If not specified, the Appian objects are checked out to and committed from the root of the local repository path.&lt;/li&gt;
&lt;li&gt;-repo_url - The URL that defines the remote repository. Example: https://github.com/git-username/project-name.git, svn+ssh://svn.code.sf.net/p/project-name/code&lt;/li&gt;
&lt;li&gt;-package_path - &lt;em&gt;For buildAllApps,&amp;nbsp;&lt;em&gt;buildSingleApp, and&amp;nbsp;&lt;em&gt;&lt;em&gt;buildMultipleApps&lt;/em&gt;&lt;/em&gt;&amp;nbsp;&lt;/em&gt;only.&lt;/em&gt; The path on the filesystem where packages are generated. Must include filename of package.&lt;/li&gt;
&lt;li&gt;-branch_name - Branch to check out and use (if not master)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="configuring-using-the-properties-file"&gt;Configuring using the Properties File&lt;/h3&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the configuration file version-manager.properties. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;In case an option is specified both on the command line and in the properties file, the command line value takes precedence and is used.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false &amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;p&gt;If used, the property&amp;nbsp;&lt;code&gt;appianObjectRepoPath&lt;/code&gt;&amp;nbsp;must not reference a file path more than one level below the root directory of the repository. Ex.&amp;nbsp;appianObjectRepoPath =&amp;nbsp;/appian/objects&amp;nbsp;is an acceptable configuration but&amp;nbsp;appianObjectRepoPath = /appian/folder/objects is not valid.&lt;/p&gt;
&lt;h3 id="use-cases"&gt;Use Cases&lt;/h3&gt;
&lt;h4 id="1-new-developer-joins-team-updatelocalrepo"&gt;#1: New developer joins team (updateLocalRepo)&lt;/h4&gt;
&lt;p&gt;In this use case, a new developer has joined the team and wants to get a copy of all the work completed so far. The developer should:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Update version-manager.properties with the appropriate fields. See the &lt;a href="#script_execution"&gt;Script Setup&lt;/a&gt; section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;updateLocalRepo&lt;/strong&gt; as the action flag. The developer must provide the username and password for authenticating against their version control system (-vc_username, -vc_password).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action updateLocalRepo -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, the developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;h4 id="2-developer-adds-artifacts-to-the-repository-addcontents"&gt;#2: Developer adds artifacts to the repository (addContents)&lt;/h4&gt;
&lt;p&gt;In this use case, the developer on a team has been working in the development environment and has changes he wishes to add to the repository. The changes may be a new application or a patch to an existing application. Note: the repository serves as a record of changes, and can be thought of as an additional Appian environment. The steps involved are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the Appian development environment, create an application (or a patch) that contains the changed objects.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Export those changes and download the application ZIP file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;addContents&lt;/strong&gt; as the action flag. The developer must provide the path of the ZIP file they exported (-application_path) from Appian in step 2. They must also provide the username and password for authenticating their version control system (-vc_username, -vc_password). &lt;strong&gt;NOTE: these are NOT Appian credentials.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Optional: if the application specified for -application_path is a patch, update the -uuid option to specify the parent application&amp;rsquo;s uuid. &lt;em&gt;The script will exit with error if a patch application ZIP is provided but no uuid is passed in.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Optional: if DDL scripts have been modified, specify the path(s) and their associated JDBC datasource names. NOTE: The same number of DDL scripts and datasource names must be entered into the script, even if the datasource is the same for all scripts. For example: the developer wishes to add two ddl scripts located at C:\DDLs\script1.sql and C:\DDLs\script2.sql. They do so by setting the -ddl_path option as C:\DDLs\script1.sql,C:\DDLs\script2.sql If both scripts are to be executed on jdbc/AppianDS, they must set the -ddl_ds option as jdbc/AppianDS,jdbc/AppianDS. Note that the datasource name is passed in &lt;strong&gt;&lt;em&gt;twice&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: include a custom commit message using the -commit_message option&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="caution"&gt;WARNING: It is HIGHLY recommended that DDL scripts are developed INCREMENTALLY. That is, do not modify existing DDL scripts - instead, create new scripts that only contain the commands the designer wishes to execute.This is because if the designer updates an existing DDL script, all lines in the script will be executed. This can lead to data integrity issues if not managed properly. PLEASE EXERCISE CAUTION WHEN MODIFYING EXISTING DDL SCRIPTS. Example: if the designer modifies a script that contains commands to drop and recreate a table, the script will drop and recreate the table even if the designer did not modify that section.&lt;/div&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action addContents -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -application_path &amp;quot;C:\App.zip&amp;quot; -ddl_ds jdbc/AppianAnywhere -ddl_path “C:\script1.sql” -commit_message “Adding account executive record”&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When the script is executed, three things occur:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The application ZIP is unzipped and placed into the local repository, and the DDL files are placed into a ddl_files folder within the local repository. If the -uuid option is selected, the appropriate application xml file is updated.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The changes are committed (and pushed, if using Git) to the remote repository.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When the package is imported into Appian, all lines within script1.sql will be executed and contents within the application ZIP are imported.&lt;/p&gt;
&lt;p&gt;Using Folder Listener:&lt;/p&gt;
&lt;p&gt;Alternatively, instead of running the script, the developer can execute&amp;nbsp;avm-folder-listener-&amp;lt;os&amp;gt;&amp;nbsp;in the&amp;nbsp;folder-listener&amp;nbsp;directory. The following command prompt will appear:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x960/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png" /&gt;&lt;/div&gt;
&lt;p&gt;The developer will provide the directory that the application or patch ZIPs will be dropped into as well as the directory of the automated versioning manager tool. Otherwise, the default directories will be used.&lt;/p&gt;
&lt;p&gt;Once setup, the developer can drag the desired application ZIP into the specified directory and the application ZIP will be versioned in their GIT repository. This is assuming that all necessary fields have already been configured in the file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;p&gt;If the developer is supplying a patch ZIP, the console will prompt the developer for the associated application uuid or name. Once supplied, the patch will be deployed to the specified environment in the&amp;nbsp;file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;h4 id="3-build-master-generates-new-rc-deployment-package-buildpackage"&gt;#3: Build master generates new RC deployment package (buildAllApps)&lt;/h4&gt;
&lt;p&gt;In this use case, all additions made by the team have been incorporated into the remote repository and have gone through sufficient testing. The build master is now ready to promote a new package to the higher environment. The new package should include all additions and changes since the last deployment. The build master will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;(If not done previously) Update version-manager.properties with the appropriate fields. See the Script Setup section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;buildAllApps&lt;/strong&gt; as the action flag. The build master must provide the username and password for authenticating against their version control system (-vc_username, -vc_password). To get a specific set of changes, input a value for the -start_hash option and the -end_hash option. This will generate the package with all new and changed files between the two hash options.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;NOTE: the package will &lt;strong&gt;NOT&lt;/strong&gt; include the changes introduced in the start hash, but &lt;strong&gt;WILL&lt;/strong&gt; include changes introduced in the end hash.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Command:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action buildAllApps -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -start_hash ac37459 -end_hash 6e83b42&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, it generates a package at the location specified by the packagePath field in version-manager.properties.&lt;/p&gt;
&lt;p&gt;Finally, the build master will import the RC package into the higher environment using the Automated Import tool as described later in this play.&lt;/p&gt;
&lt;h3 id="_using_subversion_as_version_control_system"&gt;Using Subversion as Version Control System&lt;/h3&gt;
&lt;p&gt;To allow the Automated Versioning Manager to perform the checkout and commit operations with Subversion, the tool assumes the common Subversion project structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;trunk&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;branches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tags&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The location of the repository root must be provided by the property repoURL.&lt;/p&gt;
&lt;p&gt;Example: The following version-manager.properties configuration checks out the release 1 branch from the repository located at &lt;code&gt;https://svn.code.sf.net/p/deploymentautomationexample/code&lt;/code&gt; and commit all changes to the branch &amp;quot;release1&amp;quot;. Optionally, you may specify each of these parameters as command line arguments instead of using the version-manager.properties file.&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=SVN

repoUrl=https://svn.code.sf.net/p/deploymentautomationexample/code

branchName=branches/release1&lt;/pre&gt;&lt;/pre&gt;
&lt;h3 id="_using_git_as_version_control_system"&gt;Using Git as Version Control System&lt;/h3&gt;
&lt;p&gt;To use Git with the Automated Versioning Manager, properties may be specified on the command line or version-manager.properties should be updated as follows:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=GIT

repoUrl=https://github.com/gituser/testgitrepo.git

branchName=newbranch&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;branchName is an optional field. If the branch does not exist remotely, the tool will automatically create it on the local machine and push it to the remote repository as soon as addContents is executed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: if you are planning to check out a private repository, use the Git SSH URL rather than the HTTPS URL.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="automated_import_manager"&gt;Automated Import Manager&lt;/h2&gt;
&lt;h3 id="_summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;With the Cloud-approved Appian &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager plug-in&lt;/a&gt; and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager client&lt;/a&gt;&amp;nbsp;available on the AppMarket, users can automatically deploy applications and patch contents (either applications from Appian OR packages generated from the &lt;a href="#automated_versioning_manager"&gt;Automated Versioning Manager&lt;/a&gt;) to any environment. Users will have three options for deployment: the tool can either deploy from the tool&amp;rsquo;s user interface in one click, trigger the deployment from an external CI tool, or deploy from the command line.&lt;/p&gt;
&lt;p&gt;The Automated Import Manager automates the process of inspecting the application, executing DDL scripts, &lt;strong&gt;updating CDTs, republishing the appropriate datastores&lt;/strong&gt;, and importing the application.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4011.deployment_5F00_automation_5F00_02.png" /&gt;&lt;/div&gt;
&lt;h3 id="aim_features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect Application:&lt;/strong&gt; This tool will automatically mimic the &amp;quot;Inspect&amp;quot; functionality that exists within Appian&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Validating Application Content:&lt;/strong&gt; In addition to inspecting the application, the tool will ensure all CDT dependents are included to avoid objects pointing to older versions.&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute DDL Scripts:&lt;/strong&gt; DDL scripts can be uploaded and automatically executed. NOTE: For Microsoft SQL Server, only Transact-SQL statements are valid.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute Migrations with Flyway:&amp;nbsp;&lt;/strong&gt;Flyway is a tool used for managing database migrations. It makes it easier to track SQL script versions and not re-execute SQL scripts that have already been run. If a Flyway&amp;nbsp;directory is provided, the Automated Import Manager will automatically&amp;nbsp;execute migrations against the corresponding datasource.&amp;nbsp;Learn more about Flyway&amp;nbsp;&lt;a href="https://documentation.red-gate.com/fd/quickstart-how-flyway-works-184127223.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Update CDTs:&lt;/strong&gt; Users are no longer required to delete CDTs before updating them, this tool will perform this step automatically&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import Application and admin console configuration:&lt;/strong&gt; Automatically import an application with an optional customization file&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Republish Datastores:&lt;/strong&gt; After application import, datastores will be automatically published or republished&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add Patches:&lt;/strong&gt; Automatically add patch contents to a specified existing application&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage_"&gt;Usage&lt;/h3&gt;
&lt;h3 id="1-deploy-from-the-web-browser-ui"&gt;&amp;nbsp;Deploy from the Web Browser UI&lt;/h3&gt;
&lt;p&gt;The tool collects usage metrics by default. To opt-out of metrics collection, check the below option on the Web Browser UI:&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1600x480/__key/communityserver-wikis-components-files/00-00-00-00-46/0702.pastedimage1539370754100v1.png" /&gt;&lt;/div&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/796x1133/__key/communityserver-wikis-components-files/00-00-00-00-46/4186.Screen-Shot-2018_2D00_08_2D00_30-at-3.22.31-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Log into Appian as a system administrator&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the Deployment Automation UI available at the URL: &amp;lt;appian&amp;gt;/suite/plugins/servlet/deploymentautomation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Upload the patch or application you wish to import.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If this application is a patch, select the parent application to which patch contents should be added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the new application requires changes to the database schema (i.e. new or updated CDTs) you must choose one of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upload the corresponding DDL script(s) that accurately reflect these additions and/or updates.&lt;/li&gt;
&lt;li&gt;Set the datastore to &amp;quot;Automatically update database schema&amp;quot; and set &amp;quot;Allow Database Schema Changes Through Data Stores&amp;quot; in the Deployment section of the Appian Administration Console&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click on the button &amp;quot;Start Deployment&amp;quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;During the deployment, the screen is automatically refreshed every 5 seconds with the latest status of the deployment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the deployment is complete, the browser will update with a status page.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8228.deployment_5F00_automation_5F00_04.png" /&gt;&lt;/div&gt;
&lt;h3 id="2-deploy-from-the-command-line-script"&gt;&amp;nbsp;Deploy from the Command Line Script&lt;/h3&gt;
&lt;p&gt;The command line script - the client - can be downloaded from the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false&amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x2000/__key/communityserver-wikis-components-files/00-00-00-00-46/7723.Screen-Shot-2018_2D00_08_2D00_30-at-3.29.54-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open a command window in the same folder to which the client script and supporting libraries were unzipped.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the help guide pictured above, run the proper command to automatically import the application. Use -h or -help to view this menu at any time.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;-ac_customization_path: Indicates the path to the customization file to use when deploying the admin console&amp;nbsp;package or the application package.&lt;/li&gt;
&lt;li&gt;-admin_console_path: Indicates the path to the admin console file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-application_path: Indicates the path to the application file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-ddl_ds: Optional, use only if providing DDL scripts. The name of the datasource to use with the corresponding DDL script. Use a comma separator to enter multiple datasources.&lt;/li&gt;
&lt;li&gt;-ddl_path: Optional, use only if providing DDL scripts. Indicates the path to the DDL scripts to execute. Use a comma separator to enter multiple DDL script paths. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-flyway_path: Optional, use only if providing directories to execute DB migrations via Flyway. Use a comma separator to enter multiple directory paths. NOTE: Use quotations around the entry.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-force_import: A boolean flag which specifies whether or not the import ignores impact analysis results.If true, the import will occur even if objects with CDT references are missing&lt;/li&gt;
&lt;li&gt;-import_customization_path: Indicates the path to the import customization file to use&lt;/li&gt;
&lt;li&gt;-inspect_only: Optional, use to run an inspection of the package. Indicates the package should not be deployed but inspected only.&lt;/li&gt;
&lt;li&gt;-password: Password of the Appian user account&lt;/li&gt;
&lt;li&gt;-proxy_port: Optional, port of the proxy server to use to connect to Appian. This parameter is only used if the parameter -proxy_url is defined. The default value is 8080.&lt;/li&gt;
&lt;li&gt;-proxy_url: Optional, URL of the proxy to use to connect to Appian.&lt;/li&gt;
&lt;li&gt;-url: URL of the environment, of the format &lt;a href="http://example.appian.com/suite"&gt;https://example.appian.com/suite&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-username: Username of the Appian user account to use for deployment&lt;/li&gt;
&lt;li&gt;-uuid: UUID of the application to which patch contents will be added&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy the application by typing the command deploy-application.bat and including the relevant parameters. Your command will look something like the one pictured below.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;deploy-application.bat -application_path &amp;quot;PATH TO APPLICATION ZIP&amp;quot; -username SERVICE_ACCOUNT_USERNAME -password SERVICE_ACCOUNT_PASSWORD -url APPIAN_URL -ddl_path &amp;quot;PATH TO DLL 1, PATH TO DLL 2&amp;quot; -ddl_ds jdbc/Appian1,jdbc/Appian2&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the &lt;strong&gt;configuration file&amp;nbsp;import-manager.properties&lt;/strong&gt;. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;During the deployment, the prompt is automatically refreshed every 5 seconds with the latest status of the deployment. When the deployment is complete, a status response (like the one pictured below) will display.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6746.deployment_5F00_automation_5F00_06.png" /&gt;&lt;/div&gt;
&lt;h3 id="3-deploy-from-an-external-continuous-integration-tool"&gt;Deploy from an External Continuous Integration tool&lt;/h3&gt;
&lt;p&gt;Additional Requirement:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An existing external Continuous Integration tool (such as Jenkins or Hudson) that is properly configured&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The steps below provide the high level steps to deploy an application from Jenkins.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new external job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the job to run the import script using the guidance in Deployment Option #2 listed above&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute the job&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8132.deployment_5F00_automation_5F00_07.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;When the deployment is complete, check the status page verify that the import was successful.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/5078.deployment_5F00_automation_5F00_08.png" /&gt;&lt;/div&gt;
&lt;h2 id="troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;h3 id="deciphering_script_error_messages"&gt;Deciphering Script Error Messages&lt;/h3&gt;
&lt;h3 id="inspect-failure"&gt;Inspect Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails on inspect, please check the error log and inspect log to determine the root cause of the inspect error. Additionally, please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Inspect_Package.html"&gt;Inspect Package&lt;/a&gt; documentation to determine what common inspect issues may arise.&lt;/p&gt;
&lt;h3 id="package-validation-failure"&gt;Package Validation Failure&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;This feature is only for Appian 7.11 and above.&lt;/strong&gt; If the Automated Import script fails during package validation, this means that objects with certain CDT dependencies are missing. Please check the error message which will include the list of missing required dependencies. Appian recommends to include these dependencies in the application prior to importing.&lt;/p&gt;
&lt;p&gt;In case you want to proceed with deploying the application regardless of missing CDT dependencies, use the flag -f.&lt;/p&gt;
&lt;h3 id="import-failure"&gt;Import Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails during import, it will produce an error log that contains the reason(s) for import failure. Please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Application_Deployment_Guidelines.html#Issues_During_Export_or_Import"&gt;Application Deployment Guidelines&lt;/a&gt; documentation on import issues to determine the root cause of the import failure.&lt;/p&gt;
&lt;h3 id="invalid-credentials"&gt;Invalid Credentials&lt;/h3&gt;
&lt;p&gt;Please ensure that these credentials are associated with an active Appian system administrator account. Basic user credentials cannot be used.&lt;/p&gt;
&lt;h3 id="connection-refused-with-deployment-command-line-script"&gt;Connection Refused With Deployment Command Line Script&lt;/h3&gt;
&lt;p&gt;A &amp;quot;Connection Refused&amp;quot; error could be the result of using the wrong URL when executing the script. The URL provided as a parameter must:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;include the suffix &amp;quot;/suite&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include a port number if not using the port 80 with HTTP or port 443 with HTTPS&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="release_notes"&gt;Release Notes&lt;/h2&gt;
&lt;h3 id="september&amp;nbsp;2021_-_release_2.5.13"&gt;September&amp;nbsp;2021 - Release 2.5.13&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed an issue where setting &amp;quot;appianObjectsRepoPath&amp;quot; prevented a package that included a patches.xml file from being processed successfully&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2021_-_release_2.5.12"&gt;March&amp;nbsp;2021 - Release 2.5.12&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Updated the link to the import log in the ADM servlet after a change was made to the Appian API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed a bug that was preventing Flyway files from being included in metadata.properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september&amp;nbsp;2020_-_release_2.5.11"&gt;September&amp;nbsp;2020 - Release 2.5.11&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Upgraded Flyway version to 6.5.5 for compatibility with MariaDB.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2020_-_release_2.5.10"&gt;August&amp;nbsp;2020 - Release 2.5.10&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added the ability to dynamically generate the Metadata file for the &amp;quot;buildAllApps&amp;quot; action to reflect only the list of database scripts that are included in the package for a given commit range.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li class="li1"&gt;Fixed the interpretation of &amp;quot;appianObjectsRepoPath&amp;quot; on Windows platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="december&amp;nbsp;2019&amp;nbsp;-_release_2.5.9"&gt;December&amp;nbsp;2019&amp;nbsp;- Release 2.5.9&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added DNS proxy support to ADM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AIM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AVM&lt;/li&gt;
&lt;li class="li1"&gt;Added support for special characters in passwords in ADM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="july&amp;nbsp;2019&amp;nbsp;-_release_2.5.8"&gt;July&amp;nbsp;2019&amp;nbsp;- Release 2.5.8&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;Fixed the problem with obtaining TransactionManager and creating DataConfiguration against latest the Appian version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april&amp;nbsp;2019&amp;nbsp;-_release_2.5.7"&gt;April&amp;nbsp;2019&amp;nbsp;- Release 2.5.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added commit message prompt to folder listener&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed Windows issue with pushing file updates to versioning manager&lt;/li&gt;
&lt;li class="li1"&gt;Fixed import patch failure not adding newly created objects issue&lt;/li&gt;
&lt;li class="li1"&gt;Fixed semicolon separator parsing issue&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2019_-_release_2.5.6"&gt;March&amp;nbsp;2019 - Release 2.5.6&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added proxy authentication support for import client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="february&amp;nbsp;2019_-_release_2.5.5"&gt;February&amp;nbsp;2019 - Release 2.5.5&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed DDL paths bug&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2019_-_release_2.5.4"&gt;January&amp;nbsp;2019 - Release 2.5.4&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Improved descriptions of errors encountered during deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed &amp;quot;Connection Refused&amp;quot; bug when running on a Jenkins server&lt;/li&gt;
&lt;li&gt;Fixed &amp;quot;buildSingleApp&amp;quot; AVM bug when specifying an appianObjectsRepoPath&lt;/li&gt;
&lt;li&gt;Fixed rare &amp;quot;hanging&amp;quot; bug in AIM Client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="november&amp;nbsp;2018_-_release_2.5.3"&gt;November&amp;nbsp;2018 - Release 2.5.3&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Created a reset command for Remote Automated Deployment Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Version and Import Metrics Logger Initialized correctly to fix null pointer exception&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october&amp;nbsp;2018_-_release_2.5.2"&gt;October&amp;nbsp;2018 - Release 2.5.2&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li&gt;Folder listener to auto trigger &amp;ldquo;Add Contents&amp;rdquo; action&lt;/li&gt;
&lt;li&gt;Field validation for import and versioning manager properties files&lt;/li&gt;
&lt;li&gt;Usage metrics collection to better understand tool use&lt;/li&gt;
&lt;li&gt;Updated error log messages&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;ADM UI: Handle apostrophes in app name&lt;/li&gt;
&lt;li&gt;ZIP type validation for Automated Import Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="&amp;nbsp;september&amp;nbsp;2018_-_release_2.5.1"&gt;&amp;nbsp;September&amp;nbsp;2018 - Release 2.5.1&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;New buildMultipleApps action&lt;/li&gt;
&lt;li class="li1"&gt;Check version of tools with -v or -version flags&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed ADM SQL errors with non-null statements and forward slash as delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.5.0"&gt;August&amp;nbsp;2018 - Release 2.5.0&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added Flyway DB version control tool to command line and AIM GUI&lt;/li&gt;
&lt;li class="li1"&gt;Allow import of DDL scripts or Flyway scripts without an application zip or patch zip&lt;/li&gt;
&lt;li class="li1"&gt;Added Folder Listener script that will run addContents automatically when a file is dropped into a folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added buildAllApps to list of approved actions&lt;/li&gt;
&lt;li class="li1"&gt;Set inspect_only properly in AIM&lt;/li&gt;
&lt;li class="li1"&gt;Fixed bug where repo would be cloned into a folder with an incorrect name&lt;/li&gt;
&lt;li class="li1"&gt;Passed in correct authentication token for buildAllApps and buildSingleApp&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.4.7"&gt;August&amp;nbsp;2018 - Release 2.4.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added &amp;quot;buildSingleApp&amp;quot; action to extract one app from multi app repo&lt;/li&gt;
&lt;li class="li1"&gt;Renamed &amp;quot;buildPackage&amp;quot; action to &amp;quot;buildAllApps&amp;quot; to better clarify the functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed miscellaneous issues with parsing SQL in DDL file&lt;/li&gt;
&lt;li class="li1"&gt;Mark/reset issue with large customization files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june&amp;nbsp;2018_-_release_2.4.6"&gt;June&amp;nbsp;2018 - Release 2.4.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added an import-manager.properties file to set default values for importing applications&lt;/li&gt;
&lt;li&gt;Automated versioning manager supports adding a package with multiple patches&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Application version UUID is updated when adding patches to a version control&lt;/li&gt;
&lt;li&gt;Import no longer fails when SQL in DDL file contains a &amp;quot;;&amp;quot;, &amp;quot;&amp;ndash;&amp;quot; or &amp;quot;/**/&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2018_-_release_2.4.5"&gt;March 2018 - Release 2.4.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add support for proxy configuration in the deployment client script with parameters &amp;quot;proxy_port&amp;quot; and &amp;quot;proxy_url&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2018_-_release_2.4.4"&gt;January&amp;nbsp;2018 - Release 2.4.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2018_-_release_2.4.3"&gt;January 2018 - Release 2.4.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.4&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2017_-_release_2.4.2"&gt;September 2017 - Release 2.4.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.3&lt;/li&gt;
&lt;li&gt;Better handling of end of line characters in the SQL scripts&lt;/li&gt;
&lt;li&gt;Support for customization file when deploying an application package&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2017_-_release_2.4.1"&gt;June 2017 - Release 2.4.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.2&lt;/li&gt;
&lt;li&gt;Fix defect preventing to execute DB scripts as part of a deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2017_-_release_2.4.0"&gt;January 2017 - Release 2.4.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.1&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october_2016_-_release_2.3"&gt;October 2016 - Release 2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 16.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.9"&gt;September 2016 - Release 2.2.9&lt;/h3&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Successfully deploy application packages containing new Datastore entities and new dependents on these entities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.8"&gt;September 2016 - Release 2.2.8&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with missing artifacts in package when using START_HASH and END_HASH.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.7"&gt;August 2016 - Release 2.2.7&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing updated Documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.6"&gt;August 2016 - Release 2.2.6&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New parameter no_update to build a package from the local repository without first performing a checkout&lt;/li&gt;
&lt;li&gt;New integrity control when checking in applications and patches&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.5"&gt;August 2016 - Release 2.2.5&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing new CDTs and updated CDTs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.4"&gt;June 2016 - Release 2.2.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.3"&gt;June 2016 - Release 2.2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Include the source code in all modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.2"&gt;June 2016 - Release 2.2.2&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new parameter appian_objects_repo_path to specify where the Appian artifacts are located in the repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="may_2016_-_release_2.2.0"&gt;May 2016 - Release 2.2.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for admin console packages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed update-database-schema to support native product capability of automatic database updates via datastore and administration console.&lt;/li&gt;
&lt;li&gt;Updated Web Browser UI style&lt;/li&gt;
&lt;li&gt;Removed option for &amp;quot;Automatically update the database schema when publishing the data stores&amp;quot; from the Web Browser UI&lt;/li&gt;
&lt;li&gt;Added support for admin console deployments&lt;/li&gt;
&lt;li&gt;Added support in command line for inspect_only parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2016_-_release_2.1.0"&gt;March 2016 - Release 2.1.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for input flexibility. Now, the command line for versioning manager supports all possible parameters.&lt;/li&gt;
&lt;li&gt;Allowed tags as inputs to start hash and end hash.&lt;/li&gt;
&lt;li&gt;Added inputs of the following predefined keywords: FIRST_COMMIT (which maps to first commit ever made) and LAST_COMMIT (the previous commit). NOTE: this is only allowed on the start hash input.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for 16.1.&lt;/li&gt;
&lt;li&gt;Added action for &amp;quot;Inspect Only&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment Automation</title><link>https://community.appian.com/success/w/guide/3328/deployment-automation/revision/10</link><pubDate>Thu, 26 Oct 2023 18:26:46 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43c6339b-3b7e-4b44-ba4b-4a8c46753052</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3328/deployment-automation#comments</comments><description>Revision 10 posted to Guide by joel.larin on 10/26/2023 6:26:46 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian provides several DevOps tools to automate the &lt;a href="https://docs.appian.com/suite/help/latest/devops-with-appian.html#deploy" rel="noopener noreferrer" target="_blank"&gt;deployment of Appian applications&lt;/a&gt; such as Compare &amp;amp; Deploy and Deployment APIs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://docs.appian.com/suite/help/latest/Deploy_to_Target_Environments.html#prodlink-external-deployment-apis"&gt;Deployment APIs&lt;/a&gt; offer a set of API&amp;nbsp;endpoints that allow you to inspect and deploy applications, packages, import customization files, plug-ins, and execute database scripts.&amp;nbsp;These APIs allow you to programmatically trigger deployments and integrate your Appian release into an automated pipeline. You can set up your pipeline once and run it the exact same way for all future deployments, saving time and avoiding manual errors. It is recommended to use the Deployment APIs whenever possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The tools described in this play offer a few alternatives to Appian base product features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tightly integrate with a version control system to store and retrieve package files using the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Automated Versioning Manager (AVM)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Programmatically deploy Admin Console settings and applications using the &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) plug-in&lt;/a&gt;&amp;nbsp;and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="automated_versioning_manager"&gt;Automated Versioning Manager&lt;/h2&gt;
&lt;h3 id="summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;The Automated Versioning Manager - available on the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt; - is a tool that helps managing Appian applications and database DDL files in a version control system. Given an Appian application ZIP file, the Automated Versioning Manager performs the following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;It unzips the application and organizes the artifact XML files in the repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It automates the check-in and checkout operations with the version control system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It generates application packages for import in Appian based on the contents of the repository and a range of changes to include.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal of this tool is to facilitate the adoption and usage of a version control system to perform configuration management of the Appian applications and database DDL files.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/1374.deployment_5F00_automation_5F00_00.png" /&gt;&lt;/div&gt;
&lt;h3 id="features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Version Control integration (Git, SVN)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supports Appian applications and patches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate import package from hash ranges&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Folder Listener to add contents to Version Control&lt;/li&gt;
&lt;li&gt;Supports GitHub, GitLab, and BitBucket for Version Control&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage"&gt;Usage&lt;/h3&gt;
&lt;p&gt;The automated versioning tool is a script to be run from the command line or terminal. It contains a wrapper for Windows (version-application.bat) and Linux (version-application.sh) systems. This document will first discuss how to use the tool in general, and then discuss use cases to give concrete examples. All parameters can be passed either on the command line or in the properties file.&lt;/p&gt;
&lt;h3 id="script_execution"&gt;Script Execution&lt;/h3&gt;
&lt;p&gt;To run the script, open a command window and navigate to the directory where the automated versioning scripts are located. They are named version-application.bat or version-application.sh.&lt;/p&gt;
&lt;p&gt;Use the -h or -help parameters to view the help menu within the script. The parameters are described here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Required Parameters (required for all four actions: addContents, buildAllApps, buildSingleApp, buildMultipleApps, and updateLocalRepo)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-action - Selects which action of the script to run. Acceptable values are: addContents, updateLocalRepo, buildAllApps,&amp;nbsp;buildSingleApp, and&amp;nbsp;buildMultipleApps. Each action is detailed in the use cases below.&lt;/li&gt;
&lt;li&gt;-vc_username -The username associated with the version control (Git or SVN) account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-vc_password -Please check the Security Settings of the version control account. If you have 2-factor authentication enabled, the password requires the version control account token. If you do NOT have 2-factor authentication enabled, the password is the one associated with the version control account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for addContents action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-application_path - The path on your filesystem where the application ZIP is located.&lt;/li&gt;
&lt;li&gt;-admin_console_path - The path on your filesystem where the admin console ZIP file is located.&lt;/li&gt;
&lt;li&gt;-ddl_path - List of comma-separated paths for the DDL files to be included in the deployment package.&lt;/li&gt;
&lt;li&gt;-flyway_path&amp;nbsp;- List of comma-separated paths for the directories to execute DB migrations via Flyway.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;. To learn how&amp;nbsp;the Automated Import Manager&amp;nbsp;uses Flyway, refer to &lt;a href="#aim_features"&gt;AIM Features&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-ddl_ds - List of comma-separated datasources associated with the provided DDL files. Must provide the same number of entries as number of DDL files specified with the -ddl_path option or number of directories specified with the -flyway_path option. &lt;strong&gt;NOTE: the order of the specified datasource names must match the order of the script paths specified.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-uuid - The UUID of the application to which the contents of the application should be added. This option is only used if deploying a patch application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- The&amp;nbsp;name of the application to which the contents of the application should be added. This option is only used if deploying a&amp;nbsp;patch&amp;nbsp;application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-commit_message - The message that will be associated with the commit. If not included, a default commit message Committed by @username is provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildAllApps&amp;nbsp;action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-start_hash - Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit. &lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash - End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildSingleApp action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid - The UUID of the application you want to build.&lt;/li&gt;
&lt;li&gt;-application_name - The name of the application you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildMultipleApps action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid&amp;nbsp;- Comma separated list of UUIDs of the applications you want to build.&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- Comma separated list of names of the applications that you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update&amp;nbsp;- Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for updateLocalRepo action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are no additional options (other than required options) for updateLocalRepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Additional Parameters&lt;/strong&gt; - These parameters are REQUIRED, and may be specified here or in the properties file (described in the following section). If they are specified in both locations, the parameters specified in the command line take precedence.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-version_control_type - The version control type used, either GIT or SVN.&lt;/li&gt;
&lt;li&gt;-local_repo_path - The path on the filesystem where the local repository is located. All files on the remote repository are cloned to this path. Example: C:\\MyFiles\\ChangeManagementRepo. &lt;strong&gt;NOTE: if using Windows, be sure to include double forward slashes (as seen in the example) for path separation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-appian_objects_repo_path - Path to the folder containing the Appian objects in the repository. This path is relative to the path of the local repository. If not specified, the Appian objects are checked out to and committed from the root of the local repository path.&lt;/li&gt;
&lt;li&gt;-repo_url - The URL that defines the remote repository. Example: https://github.com/git-username/project-name.git, svn+ssh://svn.code.sf.net/p/project-name/code&lt;/li&gt;
&lt;li&gt;-package_path - &lt;em&gt;For buildAllApps,&amp;nbsp;&lt;em&gt;buildSingleApp, and&amp;nbsp;&lt;em&gt;&lt;em&gt;buildMultipleApps&lt;/em&gt;&lt;/em&gt;&amp;nbsp;&lt;/em&gt;only.&lt;/em&gt; The path on the filesystem where packages are generated. Must include filename of package.&lt;/li&gt;
&lt;li&gt;-branch_name - Branch to check out and use (if not master)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="configuring-using-the-properties-file"&gt;Configuring using the Properties File&lt;/h3&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the configuration file version-manager.properties. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;In case an option is specified both on the command line and in the properties file, the command line value takes precedence and is used.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false &amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;p&gt;If used, the property&amp;nbsp;&lt;code&gt;appianObjectRepoPath&lt;/code&gt;&amp;nbsp;must not reference a file path more than one level below the root directory of the repository. Ex.&amp;nbsp;appianObjectRepoPath =&amp;nbsp;/appian/objects&amp;nbsp;is an acceptable configuration but&amp;nbsp;appianObjectRepoPath = /appian/folder/objects is not valid.&lt;/p&gt;
&lt;h3 id="use-cases"&gt;Use Cases&lt;/h3&gt;
&lt;h4 id="1-new-developer-joins-team-updatelocalrepo"&gt;#1: New developer joins team (updateLocalRepo)&lt;/h4&gt;
&lt;p&gt;In this use case, a new developer has joined the team and wants to get a copy of all the work completed so far. The developer should:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Update version-manager.properties with the appropriate fields. See the &lt;a href="#script_execution"&gt;Script Setup&lt;/a&gt; section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;updateLocalRepo&lt;/strong&gt; as the action flag. The developer must provide the username and password for authenticating against their version control system (-vc_username, -vc_password).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action updateLocalRepo -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, the developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;h4 id="2-developer-adds-artifacts-to-the-repository-addcontents"&gt;#2: Developer adds artifacts to the repository (addContents)&lt;/h4&gt;
&lt;p&gt;In this use case, the developer on a team has been working in the development environment and has changes he wishes to add to the repository. The changes may be a new application or a patch to an existing application. Note: the repository serves as a record of changes, and can be thought of as an additional Appian environment. The steps involved are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the Appian development environment, create an application (or a patch) that contains the changed objects.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Export those changes and download the application ZIP file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;addContents&lt;/strong&gt; as the action flag. The developer must provide the path of the ZIP file they exported (-application_path) from Appian in step 2. They must also provide the username and password for authenticating their version control system (-vc_username, -vc_password). &lt;strong&gt;NOTE: these are NOT Appian credentials.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Optional: if the application specified for -application_path is a patch, update the -uuid option to specify the parent application&amp;rsquo;s uuid. &lt;em&gt;The script will exit with error if a patch application ZIP is provided but no uuid is passed in.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Optional: if DDL scripts have been modified, specify the path(s) and their associated JDBC datasource names. NOTE: The same number of DDL scripts and datasource names must be entered into the script, even if the datasource is the same for all scripts. For example: the developer wishes to add two ddl scripts located at C:\DDLs\script1.sql and C:\DDLs\script2.sql. They do so by setting the -ddl_path option as C:\DDLs\script1.sql,C:\DDLs\script2.sql If both scripts are to be executed on jdbc/AppianDS, they must set the -ddl_ds option as jdbc/AppianDS,jdbc/AppianDS. Note that the datasource name is passed in &lt;strong&gt;&lt;em&gt;twice&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: include a custom commit message using the -commit_message option&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="caution"&gt;WARNING: It is HIGHLY recommended that DDL scripts are developed INCREMENTALLY. That is, do not modify existing DDL scripts - instead, create new scripts that only contain the commands the designer wishes to execute.This is because if the designer updates an existing DDL script, all lines in the script will be executed. This can lead to data integrity issues if not managed properly. PLEASE EXERCISE CAUTION WHEN MODIFYING EXISTING DDL SCRIPTS. Example: if the designer modifies a script that contains commands to drop and recreate a table, the script will drop and recreate the table even if the designer did not modify that section.&lt;/div&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action addContents -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -application_path &amp;quot;C:\App.zip&amp;quot; -ddl_ds jdbc/AppianAnywhere -ddl_path “C:\script1.sql” -commit_message “Adding account executive record”&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When the script is executed, three things occur:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The application ZIP is unzipped and placed into the local repository, and the DDL files are placed into a ddl_files folder within the local repository. If the -uuid option is selected, the appropriate application xml file is updated.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The changes are committed (and pushed, if using Git) to the remote repository.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When the package is imported into Appian, all lines within script1.sql will be executed and contents within the application ZIP are imported.&lt;/p&gt;
&lt;p&gt;Using Folder Listener:&lt;/p&gt;
&lt;p&gt;Alternatively, instead of running the script, the developer can execute&amp;nbsp;avm-folder-listener-&amp;lt;os&amp;gt;&amp;nbsp;in the&amp;nbsp;folder-listener&amp;nbsp;directory. The following command prompt will appear:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x960/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png" /&gt;&lt;/div&gt;
&lt;p&gt;The developer will provide the directory that the application or patch ZIPs will be dropped into as well as the directory of the automated versioning manager tool. Otherwise, the default directories will be used.&lt;/p&gt;
&lt;p&gt;Once setup, the developer can drag the desired application ZIP into the specified directory and the application ZIP will be versioned in their GIT repository. This is assuming that all necessary fields have already been configured in the file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;p&gt;If the developer is supplying a patch ZIP, the console will prompt the developer for the associated application uuid or name. Once supplied, the patch will be deployed to the specified environment in the&amp;nbsp;file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;h4 id="3-build-master-generates-new-rc-deployment-package-buildpackage"&gt;#3: Build master generates new RC deployment package (buildAllApps)&lt;/h4&gt;
&lt;p&gt;In this use case, all additions made by the team have been incorporated into the remote repository and have gone through sufficient testing. The build master is now ready to promote a new package to the higher environment. The new package should include all additions and changes since the last deployment. The build master will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;(If not done previously) Update version-manager.properties with the appropriate fields. See the Script Setup section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;buildAllApps&lt;/strong&gt; as the action flag. The build master must provide the username and password for authenticating against their version control system (-vc_username, -vc_password). To get a specific set of changes, input a value for the -start_hash option and the -end_hash option. This will generate the package with all new and changed files between the two hash options.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;NOTE: the package will &lt;strong&gt;NOT&lt;/strong&gt; include the changes introduced in the start hash, but &lt;strong&gt;WILL&lt;/strong&gt; include changes introduced in the end hash.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Command:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action buildAllApps -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -start_hash ac37459 -end_hash 6e83b42&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, it generates a package at the location specified by the packagePath field in version-manager.properties.&lt;/p&gt;
&lt;p&gt;Finally, the build master will import the RC package into the higher environment using the Automated Import tool as described later in this play.&lt;/p&gt;
&lt;h3 id="_using_subversion_as_version_control_system"&gt;Using Subversion as Version Control System&lt;/h3&gt;
&lt;p&gt;To allow the Automated Versioning Manager to perform the checkout and commit operations with Subversion, the tool assumes the common Subversion project structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;trunk&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;branches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tags&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The location of the repository root must be provided by the property repoURL.&lt;/p&gt;
&lt;p&gt;Example: The following version-manager.properties configuration checks out the release 1 branch from the repository located at &lt;code&gt;https://svn.code.sf.net/p/deploymentautomationexample/code&lt;/code&gt; and commit all changes to the branch &amp;quot;release1&amp;quot;. Optionally, you may specify each of these parameters as command line arguments instead of using the version-manager.properties file.&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=SVN

repoUrl=https://svn.code.sf.net/p/deploymentautomationexample/code

branchName=branches/release1&lt;/pre&gt;&lt;/pre&gt;
&lt;h3 id="_using_git_as_version_control_system"&gt;Using Git as Version Control System&lt;/h3&gt;
&lt;p&gt;To use Git with the Automated Versioning Manager, properties may be specified on the command line or version-manager.properties should be updated as follows:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=GIT

repoUrl=https://github.com/gituser/testgitrepo.git

branchName=newbranch&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;branchName is an optional field. If the branch does not exist remotely, the tool will automatically create it on the local machine and push it to the remote repository as soon as addContents is executed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: if you are planning to check out a private repository, use the Git SSH URL rather than the HTTPS URL.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="automated_import_manager"&gt;Automated Import Manager&lt;/h2&gt;
&lt;h3 id="_summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;With the Cloud-approved Appian &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager plug-in&lt;/a&gt; and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager client&lt;/a&gt;&amp;nbsp;available on the AppMarket, users can automatically deploy applications and patch contents (either applications from Appian OR packages generated from the &lt;a href="#Automated_Versioning_Manager"&gt;Automated Versioning Manager&lt;/a&gt;) to any environment. Users will have three options for deployment: the tool can either deploy from the tool&amp;rsquo;s user interface in one click, trigger the deployment from an external CI tool, or deploy from the command line.&lt;/p&gt;
&lt;p&gt;The Automated Import Manager automates the process of inspecting the application, executing DDL scripts, &lt;strong&gt;updating CDTs, republishing the appropriate datastores&lt;/strong&gt;, and importing the application.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4011.deployment_5F00_automation_5F00_02.png" /&gt;&lt;/div&gt;
&lt;h3 id="aim_features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect Application:&lt;/strong&gt; This tool will automatically mimic the &amp;quot;Inspect&amp;quot; functionality that exists within Appian&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Validating Application Content:&lt;/strong&gt; In addition to inspecting the application, the tool will ensure all CDT dependents are included to avoid objects pointing to older versions.&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute DDL Scripts:&lt;/strong&gt; DDL scripts can be uploaded and automatically executed. NOTE: For Microsoft SQL Server, only Transact-SQL statements are valid.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute Migrations with Flyway:&amp;nbsp;&lt;/strong&gt;Flyway is a tool used for managing database migrations. It makes it easier to track SQL script versions and not re-execute SQL scripts that have already been run. If a Flyway&amp;nbsp;directory is provided, the Automated Import Manager will automatically&amp;nbsp;execute migrations against the corresponding datasource.&amp;nbsp;Learn more about Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/getstarted/how"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Update CDTs:&lt;/strong&gt; Users are no longer required to delete CDTs before updating them, this tool will perform this step automatically&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import Application and admin console configuration:&lt;/strong&gt; Automatically import an application with an optional customization file&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Republish Datastores:&lt;/strong&gt; After application import, datastores will be automatically published or republished&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add Patches:&lt;/strong&gt; Automatically add patch contents to a specified existing application&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage_"&gt;Usage&lt;/h3&gt;
&lt;h3 id="1-deploy-from-the-web-browser-ui"&gt;&amp;nbsp;Deploy from the Web Browser UI&lt;/h3&gt;
&lt;p&gt;The tool collects usage metrics by default. To opt-out of metrics collection, check the below option on the Web Browser UI:&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1600x480/__key/communityserver-wikis-components-files/00-00-00-00-46/0702.pastedimage1539370754100v1.png" /&gt;&lt;/div&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/796x1133/__key/communityserver-wikis-components-files/00-00-00-00-46/4186.Screen-Shot-2018_2D00_08_2D00_30-at-3.22.31-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Log into Appian as a system administrator&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the Deployment Automation UI available at the URL: &amp;lt;appian&amp;gt;/suite/plugins/servlet/deploymentautomation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Upload the patch or application you wish to import.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If this application is a patch, select the parent application to which patch contents should be added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the new application requires changes to the database schema (i.e. new or updated CDTs) you must choose one of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upload the corresponding DDL script(s) that accurately reflect these additions and/or updates.&lt;/li&gt;
&lt;li&gt;Set the datastore to &amp;quot;Automatically update database schema&amp;quot; and set &amp;quot;Allow Database Schema Changes Through Data Stores&amp;quot; in the Deployment section of the Appian Administration Console&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click on the button &amp;quot;Start Deployment&amp;quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;During the deployment, the screen is automatically refreshed every 5 seconds with the latest status of the deployment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the deployment is complete, the browser will update with a status page.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8228.deployment_5F00_automation_5F00_04.png" /&gt;&lt;/div&gt;
&lt;h3 id="2-deploy-from-the-command-line-script"&gt;&amp;nbsp;Deploy from the Command Line Script&lt;/h3&gt;
&lt;p&gt;The command line script - the client - can be downloaded from the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false&amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x2000/__key/communityserver-wikis-components-files/00-00-00-00-46/7723.Screen-Shot-2018_2D00_08_2D00_30-at-3.29.54-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open a command window in the same folder to which the client script and supporting libraries were unzipped.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the help guide pictured above, run the proper command to automatically import the application. Use -h or -help to view this menu at any time.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;-ac_customization_path: Indicates the path to the customization file to use when deploying the admin console&amp;nbsp;package or the application package.&lt;/li&gt;
&lt;li&gt;-admin_console_path: Indicates the path to the admin console file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-application_path: Indicates the path to the application file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-ddl_ds: Optional, use only if providing DDL scripts. The name of the datasource to use with the corresponding DDL script. Use a comma separator to enter multiple datasources.&lt;/li&gt;
&lt;li&gt;-ddl_path: Optional, use only if providing DDL scripts. Indicates the path to the DDL scripts to execute. Use a comma separator to enter multiple DDL script paths. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-flyway_path: Optional, use only if providing directories to execute DB migrations via Flyway. Use a comma separator to enter multiple directory paths. NOTE: Use quotations around the entry.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-force_import: A boolean flag which specifies whether or not the import ignores impact analysis results.If true, the import will occur even if objects with CDT references are missing&lt;/li&gt;
&lt;li&gt;-import_customization_path: Indicates the path to the import customization file to use&lt;/li&gt;
&lt;li&gt;-inspect_only: Optional, use to run an inspection of the package. Indicates the package should not be deployed but inspected only.&lt;/li&gt;
&lt;li&gt;-password: Password of the Appian user account&lt;/li&gt;
&lt;li&gt;-proxy_port: Optional, port of the proxy server to use to connect to Appian. This parameter is only used if the parameter -proxy_url is defined. The default value is 8080.&lt;/li&gt;
&lt;li&gt;-proxy_url: Optional, URL of the proxy to use to connect to Appian.&lt;/li&gt;
&lt;li&gt;-url: URL of the environment, of the format &lt;a href="http://example.appian.com/suite"&gt;https://example.appian.com/suite&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-username: Username of the Appian user account to use for deployment&lt;/li&gt;
&lt;li&gt;-uuid: UUID of the application to which patch contents will be added&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy the application by typing the command deploy-application.bat and including the relevant parameters. Your command will look something like the one pictured below.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;deploy-application.bat -application_path &amp;quot;PATH TO APPLICATION ZIP&amp;quot; -username SERVICE_ACCOUNT_USERNAME -password SERVICE_ACCOUNT_PASSWORD -url APPIAN_URL -ddl_path &amp;quot;PATH TO DLL 1, PATH TO DLL 2&amp;quot; -ddl_ds jdbc/Appian1,jdbc/Appian2&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the &lt;strong&gt;configuration file&amp;nbsp;import-manager.properties&lt;/strong&gt;. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;During the deployment, the prompt is automatically refreshed every 5 seconds with the latest status of the deployment. When the deployment is complete, a status response (like the one pictured below) will display.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6746.deployment_5F00_automation_5F00_06.png" /&gt;&lt;/div&gt;
&lt;h3 id="3-deploy-from-an-external-continuous-integration-tool"&gt;Deploy from an External Continuous Integration tool&lt;/h3&gt;
&lt;p&gt;Additional Requirement:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An existing external Continuous Integration tool (such as Jenkins or Hudson) that is properly configured&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The steps below provide the high level steps to deploy an application from Jenkins.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new external job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the job to run the import script using the guidance in Deployment Option #2 listed above&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute the job&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8132.deployment_5F00_automation_5F00_07.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;When the deployment is complete, check the status page verify that the import was successful.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/5078.deployment_5F00_automation_5F00_08.png" /&gt;&lt;/div&gt;
&lt;h2 id="troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;h3 id="deciphering_script_error_messages"&gt;Deciphering Script Error Messages&lt;/h3&gt;
&lt;h3 id="inspect-failure"&gt;Inspect Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails on inspect, please check the error log and inspect log to determine the root cause of the inspect error. Additionally, please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Inspect_Package.html"&gt;Inspect Package&lt;/a&gt; documentation to determine what common inspect issues may arise.&lt;/p&gt;
&lt;h3 id="package-validation-failure"&gt;Package Validation Failure&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;This feature is only for Appian 7.11 and above.&lt;/strong&gt; If the Automated Import script fails during package validation, this means that objects with certain CDT dependencies are missing. Please check the error message which will include the list of missing required dependencies. Appian recommends to include these dependencies in the application prior to importing.&lt;/p&gt;
&lt;p&gt;In case you want to proceed with deploying the application regardless of missing CDT dependencies, use the flag -f.&lt;/p&gt;
&lt;h3 id="import-failure"&gt;Import Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails during import, it will produce an error log that contains the reason(s) for import failure. Please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Application_Deployment_Guidelines.html#Issues_During_Export_or_Import"&gt;Application Deployment Guidelines&lt;/a&gt; documentation on import issues to determine the root cause of the import failure.&lt;/p&gt;
&lt;h3 id="invalid-credentials"&gt;Invalid Credentials&lt;/h3&gt;
&lt;p&gt;Please ensure that these credentials are associated with an active Appian system administrator account. Basic user credentials cannot be used.&lt;/p&gt;
&lt;h3 id="connection-refused-with-deployment-command-line-script"&gt;Connection Refused With Deployment Command Line Script&lt;/h3&gt;
&lt;p&gt;A &amp;quot;Connection Refused&amp;quot; error could be the result of using the wrong URL when executing the script. The URL provided as a parameter must:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;include the suffix &amp;quot;/suite&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include a port number if not using the port 80 with HTTP or port 443 with HTTPS&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="release_notes"&gt;Release Notes&lt;/h2&gt;
&lt;h3 id="september&amp;nbsp;2021_-_release_2.5.13"&gt;September&amp;nbsp;2021 - Release 2.5.13&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed an issue where setting &amp;quot;appianObjectsRepoPath&amp;quot; prevented a package that included a patches.xml file from being processed successfully&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2021_-_release_2.5.12"&gt;March&amp;nbsp;2021 - Release 2.5.12&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Updated the link to the import log in the ADM servlet after a change was made to the Appian API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed a bug that was preventing Flyway files from being included in metadata.properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september&amp;nbsp;2020_-_release_2.5.11"&gt;September&amp;nbsp;2020 - Release 2.5.11&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Upgraded Flyway version to 6.5.5 for compatibility with MariaDB.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2020_-_release_2.5.10"&gt;August&amp;nbsp;2020 - Release 2.5.10&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added the ability to dynamically generate the Metadata file for the &amp;quot;buildAllApps&amp;quot; action to reflect only the list of database scripts that are included in the package for a given commit range.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li class="li1"&gt;Fixed the interpretation of &amp;quot;appianObjectsRepoPath&amp;quot; on Windows platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="december&amp;nbsp;2019&amp;nbsp;-_release_2.5.9"&gt;December&amp;nbsp;2019&amp;nbsp;- Release 2.5.9&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added DNS proxy support to ADM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AIM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AVM&lt;/li&gt;
&lt;li class="li1"&gt;Added support for special characters in passwords in ADM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="july&amp;nbsp;2019&amp;nbsp;-_release_2.5.8"&gt;July&amp;nbsp;2019&amp;nbsp;- Release 2.5.8&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;Fixed the problem with obtaining TransactionManager and creating DataConfiguration against latest the Appian version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april&amp;nbsp;2019&amp;nbsp;-_release_2.5.7"&gt;April&amp;nbsp;2019&amp;nbsp;- Release 2.5.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added commit message prompt to folder listener&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed Windows issue with pushing file updates to versioning manager&lt;/li&gt;
&lt;li class="li1"&gt;Fixed import patch failure not adding newly created objects issue&lt;/li&gt;
&lt;li class="li1"&gt;Fixed semicolon separator parsing issue&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2019_-_release_2.5.6"&gt;March&amp;nbsp;2019 - Release 2.5.6&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added proxy authentication support for import client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="february&amp;nbsp;2019_-_release_2.5.5"&gt;February&amp;nbsp;2019 - Release 2.5.5&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed DDL paths bug&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2019_-_release_2.5.4"&gt;January&amp;nbsp;2019 - Release 2.5.4&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Improved descriptions of errors encountered during deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed &amp;quot;Connection Refused&amp;quot; bug when running on a Jenkins server&lt;/li&gt;
&lt;li&gt;Fixed &amp;quot;buildSingleApp&amp;quot; AVM bug when specifying an appianObjectsRepoPath&lt;/li&gt;
&lt;li&gt;Fixed rare &amp;quot;hanging&amp;quot; bug in AIM Client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="november&amp;nbsp;2018_-_release_2.5.3"&gt;November&amp;nbsp;2018 - Release 2.5.3&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Created a reset command for Remote Automated Deployment Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Version and Import Metrics Logger Initialized correctly to fix null pointer exception&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october&amp;nbsp;2018_-_release_2.5.2"&gt;October&amp;nbsp;2018 - Release 2.5.2&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li&gt;Folder listener to auto trigger &amp;ldquo;Add Contents&amp;rdquo; action&lt;/li&gt;
&lt;li&gt;Field validation for import and versioning manager properties files&lt;/li&gt;
&lt;li&gt;Usage metrics collection to better understand tool use&lt;/li&gt;
&lt;li&gt;Updated error log messages&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;ADM UI: Handle apostrophes in app name&lt;/li&gt;
&lt;li&gt;ZIP type validation for Automated Import Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="&amp;nbsp;september&amp;nbsp;2018_-_release_2.5.1"&gt;&amp;nbsp;September&amp;nbsp;2018 - Release 2.5.1&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;New buildMultipleApps action&lt;/li&gt;
&lt;li class="li1"&gt;Check version of tools with -v or -version flags&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed ADM SQL errors with non-null statements and forward slash as delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.5.0"&gt;August&amp;nbsp;2018 - Release 2.5.0&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added Flyway DB version control tool to command line and AIM GUI&lt;/li&gt;
&lt;li class="li1"&gt;Allow import of DDL scripts or Flyway scripts without an application zip or patch zip&lt;/li&gt;
&lt;li class="li1"&gt;Added Folder Listener script that will run addContents automatically when a file is dropped into a folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added buildAllApps to list of approved actions&lt;/li&gt;
&lt;li class="li1"&gt;Set inspect_only properly in AIM&lt;/li&gt;
&lt;li class="li1"&gt;Fixed bug where repo would be cloned into a folder with an incorrect name&lt;/li&gt;
&lt;li class="li1"&gt;Passed in correct authentication token for buildAllApps and buildSingleApp&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.4.7"&gt;August&amp;nbsp;2018 - Release 2.4.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added &amp;quot;buildSingleApp&amp;quot; action to extract one app from multi app repo&lt;/li&gt;
&lt;li class="li1"&gt;Renamed &amp;quot;buildPackage&amp;quot; action to &amp;quot;buildAllApps&amp;quot; to better clarify the functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed miscellaneous issues with parsing SQL in DDL file&lt;/li&gt;
&lt;li class="li1"&gt;Mark/reset issue with large customization files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june&amp;nbsp;2018_-_release_2.4.6"&gt;June&amp;nbsp;2018 - Release 2.4.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added an import-manager.properties file to set default values for importing applications&lt;/li&gt;
&lt;li&gt;Automated versioning manager supports adding a package with multiple patches&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Application version UUID is updated when adding patches to a version control&lt;/li&gt;
&lt;li&gt;Import no longer fails when SQL in DDL file contains a &amp;quot;;&amp;quot;, &amp;quot;&amp;ndash;&amp;quot; or &amp;quot;/**/&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2018_-_release_2.4.5"&gt;March 2018 - Release 2.4.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add support for proxy configuration in the deployment client script with parameters &amp;quot;proxy_port&amp;quot; and &amp;quot;proxy_url&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2018_-_release_2.4.4"&gt;January&amp;nbsp;2018 - Release 2.4.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2018_-_release_2.4.3"&gt;January 2018 - Release 2.4.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.4&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2017_-_release_2.4.2"&gt;September 2017 - Release 2.4.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.3&lt;/li&gt;
&lt;li&gt;Better handling of end of line characters in the SQL scripts&lt;/li&gt;
&lt;li&gt;Support for customization file when deploying an application package&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2017_-_release_2.4.1"&gt;June 2017 - Release 2.4.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.2&lt;/li&gt;
&lt;li&gt;Fix defect preventing to execute DB scripts as part of a deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2017_-_release_2.4.0"&gt;January 2017 - Release 2.4.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.1&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october_2016_-_release_2.3"&gt;October 2016 - Release 2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 16.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.9"&gt;September 2016 - Release 2.2.9&lt;/h3&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Successfully deploy application packages containing new Datastore entities and new dependents on these entities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.8"&gt;September 2016 - Release 2.2.8&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with missing artifacts in package when using START_HASH and END_HASH.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.7"&gt;August 2016 - Release 2.2.7&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing updated Documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.6"&gt;August 2016 - Release 2.2.6&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New parameter no_update to build a package from the local repository without first performing a checkout&lt;/li&gt;
&lt;li&gt;New integrity control when checking in applications and patches&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.5"&gt;August 2016 - Release 2.2.5&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing new CDTs and updated CDTs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.4"&gt;June 2016 - Release 2.2.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.3"&gt;June 2016 - Release 2.2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Include the source code in all modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.2"&gt;June 2016 - Release 2.2.2&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new parameter appian_objects_repo_path to specify where the Appian artifacts are located in the repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="may_2016_-_release_2.2.0"&gt;May 2016 - Release 2.2.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for admin console packages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed update-database-schema to support native product capability of automatic database updates via datastore and administration console.&lt;/li&gt;
&lt;li&gt;Updated Web Browser UI style&lt;/li&gt;
&lt;li&gt;Removed option for &amp;quot;Automatically update the database schema when publishing the data stores&amp;quot; from the Web Browser UI&lt;/li&gt;
&lt;li&gt;Added support for admin console deployments&lt;/li&gt;
&lt;li&gt;Added support in command line for inspect_only parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2016_-_release_2.1.0"&gt;March 2016 - Release 2.1.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for input flexibility. Now, the command line for versioning manager supports all possible parameters.&lt;/li&gt;
&lt;li&gt;Allowed tags as inputs to start hash and end hash.&lt;/li&gt;
&lt;li&gt;Added inputs of the following predefined keywords: FIRST_COMMIT (which maps to first commit ever made) and LAST_COMMIT (the previous commit). NOTE: this is only allowed on the start hash input.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for 16.1.&lt;/li&gt;
&lt;li&gt;Added action for &amp;quot;Inspect Only&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment Automation</title><link>https://community.appian.com/success/w/guide/3328/deployment-automation/revision/9</link><pubDate>Thu, 26 Oct 2023 18:25:27 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43c6339b-3b7e-4b44-ba4b-4a8c46753052</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3328/deployment-automation#comments</comments><description>Revision 9 posted to Guide by joel.larin on 10/26/2023 6:25:27 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian provides several DevOps tools to automate the &lt;a href="https://docs.appian.com/suite/help/latest/devops-with-appian.html#deploy" rel="noopener noreferrer" target="_blank"&gt;deployment of Appian applications&lt;/a&gt; such as Compare &amp;amp; Deploy and Deployment APIs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://docs.appian.com/suite/help/latest/Deploy_to_Target_Environments.html#prodlink-external-deployment-apis"&gt;Deployment APIs&lt;/a&gt; offer a set of API&amp;nbsp;endpoints that allow you to inspect and deploy applications, packages, import customization files, plug-ins, and execute database scripts.&amp;nbsp;These APIs allow you to programmatically trigger deployments and integrate your Appian release into an automated pipeline. You can set up your pipeline once and run it the exact same way for all future deployments, saving time and avoiding manual errors. It is recommended to use the Deployment APIs whenever possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The tools described in this play offer a few alternatives to Appian base product features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tightly integrate with a version control system to store and retrieve package files using the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Automated Versioning Manager (AVM)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Programmatically deploy Admin Console settings and applications using the &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) plug-in&lt;/a&gt;&amp;nbsp;and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="automated_versioning_manager"&gt;Automated Versioning Manager&lt;/h2&gt;
&lt;h3 id="summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;The Automated Versioning Manager - available on the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt; - is a tool that helps managing Appian applications and database DDL files in a version control system. Given an Appian application ZIP file, the Automated Versioning Manager performs the following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;It unzips the application and organizes the artifact XML files in the repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It automates the check-in and checkout operations with the version control system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It generates application packages for import in Appian based on the contents of the repository and a range of changes to include.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal of this tool is to facilitate the adoption and usage of a version control system to perform configuration management of the Appian applications and database DDL files.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/1374.deployment_5F00_automation_5F00_00.png" /&gt;&lt;/div&gt;
&lt;h3 id="features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Version Control integration (Git, SVN)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supports Appian applications and patches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate import package from hash ranges&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Folder Listener to add contents to Version Control&lt;/li&gt;
&lt;li&gt;Supports GitHub, GitLab, and BitBucket for Version Control&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage"&gt;Usage&lt;/h3&gt;
&lt;p&gt;The automated versioning tool is a script to be run from the command line or terminal. It contains a wrapper for Windows (version-application.bat) and Linux (version-application.sh) systems. This document will first discuss how to use the tool in general, and then discuss use cases to give concrete examples. All parameters can be passed either on the command line or in the properties file.&lt;/p&gt;
&lt;h3 id="script_execution"&gt;Script Execution&lt;/h3&gt;
&lt;p&gt;To run the script, open a command window and navigate to the directory where the automated versioning scripts are located. They are named version-application.bat or version-application.sh.&lt;/p&gt;
&lt;p&gt;Use the -h or -help parameters to view the help menu within the script. The parameters are described here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Required Parameters (required for all four actions: addContents, buildAllApps, buildSingleApp, buildMultipleApps, and updateLocalRepo)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-action - Selects which action of the script to run. Acceptable values are: addContents, updateLocalRepo, buildAllApps,&amp;nbsp;buildSingleApp, and&amp;nbsp;buildMultipleApps. Each action is detailed in the use cases below.&lt;/li&gt;
&lt;li&gt;-vc_username -The username associated with the version control (Git or SVN) account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-vc_password -Please check the Security Settings of the version control account. If you have 2-factor authentication enabled, the password requires the version control account token. If you do NOT have 2-factor authentication enabled, the password is the one associated with the version control account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for addContents action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-application_path - The path on your filesystem where the application ZIP is located.&lt;/li&gt;
&lt;li&gt;-admin_console_path - The path on your filesystem where the admin console ZIP file is located.&lt;/li&gt;
&lt;li&gt;-ddl_path - List of comma-separated paths for the DDL files to be included in the deployment package.&lt;/li&gt;
&lt;li&gt;-flyway_path&amp;nbsp;- List of comma-separated paths for the directories to execute DB migrations via Flyway.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;. To learn how&amp;nbsp;the Automated Import Manager&amp;nbsp;uses Flyway, refer to &lt;a href="#aim_features"&gt;AIM Features&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-ddl_ds - List of comma-separated datasources associated with the provided DDL files. Must provide the same number of entries as number of DDL files specified with the -ddl_path option or number of directories specified with the -flyway_path option. &lt;strong&gt;NOTE: the order of the specified datasource names must match the order of the script paths specified.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-uuid - The UUID of the application to which the contents of the application should be added. This option is only used if deploying a patch application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- The&amp;nbsp;name of the application to which the contents of the application should be added. This option is only used if deploying a&amp;nbsp;patch&amp;nbsp;application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-commit_message - The message that will be associated with the commit. If not included, a default commit message Committed by @username is provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildAllApps&amp;nbsp;action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-start_hash - Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit. &lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash - End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildSingleApp action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid - The UUID of the application you want to build.&lt;/li&gt;
&lt;li&gt;-application_name - The name of the application you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildMultipleApps action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid&amp;nbsp;- Comma separated list of UUIDs of the applications you want to build.&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- Comma separated list of names of the applications that you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update&amp;nbsp;- Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for updateLocalRepo action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are no additional options (other than required options) for updateLocalRepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Additional Parameters&lt;/strong&gt; - These parameters are REQUIRED, and may be specified here or in the properties file (described in the following section). If they are specified in both locations, the parameters specified in the command line take precedence.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-version_control_type - The version control type used, either GIT or SVN.&lt;/li&gt;
&lt;li&gt;-local_repo_path - The path on the filesystem where the local repository is located. All files on the remote repository are cloned to this path. Example: C:\\MyFiles\\ChangeManagementRepo. &lt;strong&gt;NOTE: if using Windows, be sure to include double forward slashes (as seen in the example) for path separation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-appian_objects_repo_path - Path to the folder containing the Appian objects in the repository. This path is relative to the path of the local repository. If not specified, the Appian objects are checked out to and committed from the root of the local repository path.&lt;/li&gt;
&lt;li&gt;-repo_url - The URL that defines the remote repository. Example: https://github.com/git-username/project-name.git, svn+ssh://svn.code.sf.net/p/project-name/code&lt;/li&gt;
&lt;li&gt;-package_path - &lt;em&gt;For buildAllApps,&amp;nbsp;&lt;em&gt;buildSingleApp, and&amp;nbsp;&lt;em&gt;&lt;em&gt;buildMultipleApps&lt;/em&gt;&lt;/em&gt;&amp;nbsp;&lt;/em&gt;only.&lt;/em&gt; The path on the filesystem where packages are generated. Must include filename of package.&lt;/li&gt;
&lt;li&gt;-branch_name - Branch to check out and use (if not master)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="configuring-using-the-properties-file"&gt;Configuring using the Properties File&lt;/h3&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the configuration file version-manager.properties. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;In case an option is specified both on the command line and in the properties file, the command line value takes precedence and is used.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false &amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;p&gt;If used, the property&amp;nbsp;&lt;code&gt;appianObjectRepoPath&lt;/code&gt;&amp;nbsp;must not reference a file path more than one level below the root directory of the repository. Ex.&amp;nbsp;appianObjectRepoPath =&amp;nbsp;/appian/objects&amp;nbsp;is an acceptable configuration but&amp;nbsp;appianObjectRepoPath = /appian/folder/objects is not valid.&lt;/p&gt;
&lt;h3 id="use-cases"&gt;Use Cases&lt;/h3&gt;
&lt;h4 id="1-new-developer-joins-team-updatelocalrepo"&gt;#1: New developer joins team (updateLocalRepo)&lt;/h4&gt;
&lt;p&gt;In this use case, a new developer has joined the team and wants to get a copy of all the work completed so far. The developer should:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Update version-manager.properties with the appropriate fields. See the &lt;a href="#script_execution"&gt;Script Setup&lt;/a&gt; section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;updateLocalRepo&lt;/strong&gt; as the action flag. The developer must provide the username and password for authenticating against their version control system (-vc_username, -vc_password).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action updateLocalRepo -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, the developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;h4 id="2-developer-adds-artifacts-to-the-repository-addcontents"&gt;#2: Developer adds artifacts to the repository (addContents)&lt;/h4&gt;
&lt;p&gt;In this use case, the developer on a team has been working in the development environment and has changes he wishes to add to the repository. The changes may be a new application or a patch to an existing application. Note: the repository serves as a record of changes, and can be thought of as an additional Appian environment. The steps involved are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the Appian development environment, create an application (or a patch) that contains the changed objects.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Export those changes and download the application ZIP file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;addContents&lt;/strong&gt; as the action flag. The developer must provide the path of the ZIP file they exported (-application_path) from Appian in step 2. They must also provide the username and password for authenticating their version control system (-vc_username, -vc_password). &lt;strong&gt;NOTE: these are NOT Appian credentials.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Optional: if the application specified for -application_path is a patch, update the -uuid option to specify the parent application&amp;rsquo;s uuid. &lt;em&gt;The script will exit with error if a patch application ZIP is provided but no uuid is passed in.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Optional: if DDL scripts have been modified, specify the path(s) and their associated JDBC datasource names. NOTE: The same number of DDL scripts and datasource names must be entered into the script, even if the datasource is the same for all scripts. For example: the developer wishes to add two ddl scripts located at C:\DDLs\script1.sql and C:\DDLs\script2.sql. They do so by setting the -ddl_path option as C:\DDLs\script1.sql,C:\DDLs\script2.sql If both scripts are to be executed on jdbc/AppianDS, they must set the -ddl_ds option as jdbc/AppianDS,jdbc/AppianDS. Note that the datasource name is passed in &lt;strong&gt;&lt;em&gt;twice&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: include a custom commit message using the -commit_message option&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="caution"&gt;WARNING: It is HIGHLY recommended that DDL scripts are developed INCREMENTALLY. That is, do not modify existing DDL scripts - instead, create new scripts that only contain the commands the designer wishes to execute.This is because if the designer updates an existing DDL script, all lines in the script will be executed. This can lead to data integrity issues if not managed properly. PLEASE EXERCISE CAUTION WHEN MODIFYING EXISTING DDL SCRIPTS. Example: if the designer modifies a script that contains commands to drop and recreate a table, the script will drop and recreate the table even if the designer did not modify that section.&lt;/div&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action addContents -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -application_path &amp;quot;C:\App.zip&amp;quot; -ddl_ds jdbc/AppianAnywhere -ddl_path “C:\script1.sql” -commit_message “Adding account executive record”&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When the script is executed, three things occur:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The application ZIP is unzipped and placed into the local repository, and the DDL files are placed into a ddl_files folder within the local repository. If the -uuid option is selected, the appropriate application xml file is updated.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The changes are committed (and pushed, if using Git) to the remote repository.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When the package is imported into Appian, all lines within script1.sql will be executed and contents within the application ZIP are imported.&lt;/p&gt;
&lt;p&gt;Using Folder Listener:&lt;/p&gt;
&lt;p&gt;Alternatively, instead of running the script, the developer can execute&amp;nbsp;avm-folder-listener-&amp;lt;os&amp;gt;&amp;nbsp;in the&amp;nbsp;folder-listener&amp;nbsp;directory. The following command prompt will appear:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x960/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png" /&gt;&lt;/div&gt;
&lt;p&gt;The developer will provide the directory that the application or patch ZIPs will be dropped into as well as the directory of the automated versioning manager tool. Otherwise, the default directories will be used.&lt;/p&gt;
&lt;p&gt;Once setup, the developer can drag the desired application ZIP into the specified directory and the application ZIP will be versioned in their GIT repository. This is assuming that all necessary fields have already been configured in the file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;p&gt;If the developer is supplying a patch ZIP, the console will prompt the developer for the associated application uuid or name. Once supplied, the patch will be deployed to the specified environment in the&amp;nbsp;file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;h4 id="3-build-master-generates-new-rc-deployment-package-buildpackage"&gt;#3: Build master generates new RC deployment package (buildAllApps)&lt;/h4&gt;
&lt;p&gt;In this use case, all additions made by the team have been incorporated into the remote repository and have gone through sufficient testing. The build master is now ready to promote a new package to the higher environment. The new package should include all additions and changes since the last deployment. The build master will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;(If not done previously) Update version-manager.properties with the appropriate fields. See the Script Setup section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;buildAllApps&lt;/strong&gt; as the action flag. The build master must provide the username and password for authenticating against their version control system (-vc_username, -vc_password). To get a specific set of changes, input a value for the -start_hash option and the -end_hash option. This will generate the package with all new and changed files between the two hash options.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;NOTE: the package will &lt;strong&gt;NOT&lt;/strong&gt; include the changes introduced in the start hash, but &lt;strong&gt;WILL&lt;/strong&gt; include changes introduced in the end hash.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Command:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action buildAllApps -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -start_hash ac37459 -end_hash 6e83b42&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, it generates a package at the location specified by the packagePath field in version-manager.properties.&lt;/p&gt;
&lt;p&gt;Finally, the build master will import the RC package into the higher environment using the Automated Import tool as described later in this play.&lt;/p&gt;
&lt;h3 id="_using_subversion_as_version_control_system"&gt;Using Subversion as Version Control System&lt;/h3&gt;
&lt;p&gt;To allow the Automated Versioning Manager to perform the checkout and commit operations with Subversion, the tool assumes the common Subversion project structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;trunk&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;branches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tags&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The location of the repository root must be provided by the property repoURL.&lt;/p&gt;
&lt;p&gt;Example: The following version-manager.properties configuration checks out the release 1 branch from the repository located at &lt;a href="https://svn.code.sf.net/p/deploymentautomationexample/code"&gt;https://svn.code.sf.net/p/deploymentautomationexample/code&lt;/a&gt; and commit all changes to the branch &amp;quot;release1&amp;quot;. Optionally, you may specify each of these parameters as command line arguments instead of using the version-manager.properties file.&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=SVN

repoUrl=https://svn.code.sf.net/p/deploymentautomationexample/code

branchName=branches/release1&lt;/pre&gt;&lt;/pre&gt;
&lt;h3 id="_using_git_as_version_control_system"&gt;Using Git as Version Control System&lt;/h3&gt;
&lt;p&gt;To use Git with the Automated Versioning Manager, properties may be specified on the command line or version-manager.properties should be updated as follows:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=GIT

repoUrl=https://github.com/gituser/testgitrepo.git

branchName=newbranch&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;branchName is an optional field. If the branch does not exist remotely, the tool will automatically create it on the local machine and push it to the remote repository as soon as addContents is executed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: if you are planning to check out a private repository, use the Git SSH URL rather than the HTTPS URL.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="automated_import_manager"&gt;Automated Import Manager&lt;/h2&gt;
&lt;h3 id="_summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;With the Cloud-approved Appian &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager plug-in&lt;/a&gt; and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager client&lt;/a&gt;&amp;nbsp;available on the AppMarket, users can automatically deploy applications and patch contents (either applications from Appian OR packages generated from the &lt;a href="#Automated_Versioning_Manager"&gt;Automated Versioning Manager&lt;/a&gt;) to any environment. Users will have three options for deployment: the tool can either deploy from the tool&amp;rsquo;s user interface in one click, trigger the deployment from an external CI tool, or deploy from the command line.&lt;/p&gt;
&lt;p&gt;The Automated Import Manager automates the process of inspecting the application, executing DDL scripts, &lt;strong&gt;updating CDTs, republishing the appropriate datastores&lt;/strong&gt;, and importing the application.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4011.deployment_5F00_automation_5F00_02.png" /&gt;&lt;/div&gt;
&lt;h3 id="aim_features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect Application:&lt;/strong&gt; This tool will automatically mimic the &amp;quot;Inspect&amp;quot; functionality that exists within Appian&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Validating Application Content:&lt;/strong&gt; In addition to inspecting the application, the tool will ensure all CDT dependents are included to avoid objects pointing to older versions.&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute DDL Scripts:&lt;/strong&gt; DDL scripts can be uploaded and automatically executed. NOTE: For Microsoft SQL Server, only Transact-SQL statements are valid.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute Migrations with Flyway:&amp;nbsp;&lt;/strong&gt;Flyway is a tool used for managing database migrations. It makes it easier to track SQL script versions and not re-execute SQL scripts that have already been run. If a Flyway&amp;nbsp;directory is provided, the Automated Import Manager will automatically&amp;nbsp;execute migrations against the corresponding datasource.&amp;nbsp;Learn more about Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/getstarted/how"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Update CDTs:&lt;/strong&gt; Users are no longer required to delete CDTs before updating them, this tool will perform this step automatically&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import Application and admin console configuration:&lt;/strong&gt; Automatically import an application with an optional customization file&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Republish Datastores:&lt;/strong&gt; After application import, datastores will be automatically published or republished&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add Patches:&lt;/strong&gt; Automatically add patch contents to a specified existing application&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage_"&gt;Usage&lt;/h3&gt;
&lt;h3 id="1-deploy-from-the-web-browser-ui"&gt;&amp;nbsp;Deploy from the Web Browser UI&lt;/h3&gt;
&lt;p&gt;The tool collects usage metrics by default. To opt-out of metrics collection, check the below option on the Web Browser UI:&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1600x480/__key/communityserver-wikis-components-files/00-00-00-00-46/0702.pastedimage1539370754100v1.png" /&gt;&lt;/div&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/796x1133/__key/communityserver-wikis-components-files/00-00-00-00-46/4186.Screen-Shot-2018_2D00_08_2D00_30-at-3.22.31-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Log into Appian as a system administrator&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the Deployment Automation UI available at the URL: &amp;lt;appian&amp;gt;/suite/plugins/servlet/deploymentautomation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Upload the patch or application you wish to import.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If this application is a patch, select the parent application to which patch contents should be added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the new application requires changes to the database schema (i.e. new or updated CDTs) you must choose one of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upload the corresponding DDL script(s) that accurately reflect these additions and/or updates.&lt;/li&gt;
&lt;li&gt;Set the datastore to &amp;quot;Automatically update database schema&amp;quot; and set &amp;quot;Allow Database Schema Changes Through Data Stores&amp;quot; in the Deployment section of the Appian Administration Console&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click on the button &amp;quot;Start Deployment&amp;quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;During the deployment, the screen is automatically refreshed every 5 seconds with the latest status of the deployment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the deployment is complete, the browser will update with a status page.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8228.deployment_5F00_automation_5F00_04.png" /&gt;&lt;/div&gt;
&lt;h3 id="2-deploy-from-the-command-line-script"&gt;&amp;nbsp;Deploy from the Command Line Script&lt;/h3&gt;
&lt;p&gt;The command line script - the client - can be downloaded from the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false&amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x2000/__key/communityserver-wikis-components-files/00-00-00-00-46/7723.Screen-Shot-2018_2D00_08_2D00_30-at-3.29.54-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open a command window in the same folder to which the client script and supporting libraries were unzipped.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the help guide pictured above, run the proper command to automatically import the application. Use -h or -help to view this menu at any time.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;-ac_customization_path: Indicates the path to the customization file to use when deploying the admin console&amp;nbsp;package or the application package.&lt;/li&gt;
&lt;li&gt;-admin_console_path: Indicates the path to the admin console file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-application_path: Indicates the path to the application file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-ddl_ds: Optional, use only if providing DDL scripts. The name of the datasource to use with the corresponding DDL script. Use a comma separator to enter multiple datasources.&lt;/li&gt;
&lt;li&gt;-ddl_path: Optional, use only if providing DDL scripts. Indicates the path to the DDL scripts to execute. Use a comma separator to enter multiple DDL script paths. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-flyway_path: Optional, use only if providing directories to execute DB migrations via Flyway. Use a comma separator to enter multiple directory paths. NOTE: Use quotations around the entry.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-force_import: A boolean flag which specifies whether or not the import ignores impact analysis results.If true, the import will occur even if objects with CDT references are missing&lt;/li&gt;
&lt;li&gt;-import_customization_path: Indicates the path to the import customization file to use&lt;/li&gt;
&lt;li&gt;-inspect_only: Optional, use to run an inspection of the package. Indicates the package should not be deployed but inspected only.&lt;/li&gt;
&lt;li&gt;-password: Password of the Appian user account&lt;/li&gt;
&lt;li&gt;-proxy_port: Optional, port of the proxy server to use to connect to Appian. This parameter is only used if the parameter -proxy_url is defined. The default value is 8080.&lt;/li&gt;
&lt;li&gt;-proxy_url: Optional, URL of the proxy to use to connect to Appian.&lt;/li&gt;
&lt;li&gt;-url: URL of the environment, of the format &lt;a href="http://example.appian.com/suite"&gt;https://example.appian.com/suite&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-username: Username of the Appian user account to use for deployment&lt;/li&gt;
&lt;li&gt;-uuid: UUID of the application to which patch contents will be added&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy the application by typing the command deploy-application.bat and including the relevant parameters. Your command will look something like the one pictured below.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;deploy-application.bat -application_path &amp;quot;PATH TO APPLICATION ZIP&amp;quot; -username SERVICE_ACCOUNT_USERNAME -password SERVICE_ACCOUNT_PASSWORD -url APPIAN_URL -ddl_path &amp;quot;PATH TO DLL 1, PATH TO DLL 2&amp;quot; -ddl_ds jdbc/Appian1,jdbc/Appian2&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the &lt;strong&gt;configuration file&amp;nbsp;import-manager.properties&lt;/strong&gt;. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;During the deployment, the prompt is automatically refreshed every 5 seconds with the latest status of the deployment. When the deployment is complete, a status response (like the one pictured below) will display.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6746.deployment_5F00_automation_5F00_06.png" /&gt;&lt;/div&gt;
&lt;h3 id="3-deploy-from-an-external-continuous-integration-tool"&gt;Deploy from an External Continuous Integration tool&lt;/h3&gt;
&lt;p&gt;Additional Requirement:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An existing external Continuous Integration tool (such as Jenkins or Hudson) that is properly configured&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The steps below provide the high level steps to deploy an application from Jenkins.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new external job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the job to run the import script using the guidance in Deployment Option #2 listed above&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute the job&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8132.deployment_5F00_automation_5F00_07.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;When the deployment is complete, check the status page verify that the import was successful.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/5078.deployment_5F00_automation_5F00_08.png" /&gt;&lt;/div&gt;
&lt;h2 id="troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;h3 id="deciphering_script_error_messages"&gt;Deciphering Script Error Messages&lt;/h3&gt;
&lt;h3 id="inspect-failure"&gt;Inspect Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails on inspect, please check the error log and inspect log to determine the root cause of the inspect error. Additionally, please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Inspect_Package.html"&gt;Inspect Package&lt;/a&gt; documentation to determine what common inspect issues may arise.&lt;/p&gt;
&lt;h3 id="package-validation-failure"&gt;Package Validation Failure&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;This feature is only for Appian 7.11 and above.&lt;/strong&gt; If the Automated Import script fails during package validation, this means that objects with certain CDT dependencies are missing. Please check the error message which will include the list of missing required dependencies. Appian recommends to include these dependencies in the application prior to importing.&lt;/p&gt;
&lt;p&gt;In case you want to proceed with deploying the application regardless of missing CDT dependencies, use the flag -f.&lt;/p&gt;
&lt;h3 id="import-failure"&gt;Import Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails during import, it will produce an error log that contains the reason(s) for import failure. Please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Application_Deployment_Guidelines.html#Issues_During_Export_or_Import"&gt;Application Deployment Guidelines&lt;/a&gt; documentation on import issues to determine the root cause of the import failure.&lt;/p&gt;
&lt;h3 id="invalid-credentials"&gt;Invalid Credentials&lt;/h3&gt;
&lt;p&gt;Please ensure that these credentials are associated with an active Appian system administrator account. Basic user credentials cannot be used.&lt;/p&gt;
&lt;h3 id="connection-refused-with-deployment-command-line-script"&gt;Connection Refused With Deployment Command Line Script&lt;/h3&gt;
&lt;p&gt;A &amp;quot;Connection Refused&amp;quot; error could be the result of using the wrong URL when executing the script. The URL provided as a parameter must:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;include the suffix &amp;quot;/suite&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include a port number if not using the port 80 with HTTP or port 443 with HTTPS&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="release_notes"&gt;Release Notes&lt;/h2&gt;
&lt;h3 id="september&amp;nbsp;2021_-_release_2.5.13"&gt;September&amp;nbsp;2021 - Release 2.5.13&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed an issue where setting &amp;quot;appianObjectsRepoPath&amp;quot; prevented a package that included a patches.xml file from being processed successfully&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2021_-_release_2.5.12"&gt;March&amp;nbsp;2021 - Release 2.5.12&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Updated the link to the import log in the ADM servlet after a change was made to the Appian API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed a bug that was preventing Flyway files from being included in metadata.properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september&amp;nbsp;2020_-_release_2.5.11"&gt;September&amp;nbsp;2020 - Release 2.5.11&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Upgraded Flyway version to 6.5.5 for compatibility with MariaDB.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2020_-_release_2.5.10"&gt;August&amp;nbsp;2020 - Release 2.5.10&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added the ability to dynamically generate the Metadata file for the &amp;quot;buildAllApps&amp;quot; action to reflect only the list of database scripts that are included in the package for a given commit range.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li class="li1"&gt;Fixed the interpretation of &amp;quot;appianObjectsRepoPath&amp;quot; on Windows platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="december&amp;nbsp;2019&amp;nbsp;-_release_2.5.9"&gt;December&amp;nbsp;2019&amp;nbsp;- Release 2.5.9&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added DNS proxy support to ADM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AIM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AVM&lt;/li&gt;
&lt;li class="li1"&gt;Added support for special characters in passwords in ADM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="july&amp;nbsp;2019&amp;nbsp;-_release_2.5.8"&gt;July&amp;nbsp;2019&amp;nbsp;- Release 2.5.8&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;Fixed the problem with obtaining TransactionManager and creating DataConfiguration against latest the Appian version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april&amp;nbsp;2019&amp;nbsp;-_release_2.5.7"&gt;April&amp;nbsp;2019&amp;nbsp;- Release 2.5.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added commit message prompt to folder listener&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed Windows issue with pushing file updates to versioning manager&lt;/li&gt;
&lt;li class="li1"&gt;Fixed import patch failure not adding newly created objects issue&lt;/li&gt;
&lt;li class="li1"&gt;Fixed semicolon separator parsing issue&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2019_-_release_2.5.6"&gt;March&amp;nbsp;2019 - Release 2.5.6&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added proxy authentication support for import client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="february&amp;nbsp;2019_-_release_2.5.5"&gt;February&amp;nbsp;2019 - Release 2.5.5&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed DDL paths bug&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2019_-_release_2.5.4"&gt;January&amp;nbsp;2019 - Release 2.5.4&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Improved descriptions of errors encountered during deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed &amp;quot;Connection Refused&amp;quot; bug when running on a Jenkins server&lt;/li&gt;
&lt;li&gt;Fixed &amp;quot;buildSingleApp&amp;quot; AVM bug when specifying an appianObjectsRepoPath&lt;/li&gt;
&lt;li&gt;Fixed rare &amp;quot;hanging&amp;quot; bug in AIM Client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="november&amp;nbsp;2018_-_release_2.5.3"&gt;November&amp;nbsp;2018 - Release 2.5.3&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Created a reset command for Remote Automated Deployment Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Version and Import Metrics Logger Initialized correctly to fix null pointer exception&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october&amp;nbsp;2018_-_release_2.5.2"&gt;October&amp;nbsp;2018 - Release 2.5.2&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li&gt;Folder listener to auto trigger &amp;ldquo;Add Contents&amp;rdquo; action&lt;/li&gt;
&lt;li&gt;Field validation for import and versioning manager properties files&lt;/li&gt;
&lt;li&gt;Usage metrics collection to better understand tool use&lt;/li&gt;
&lt;li&gt;Updated error log messages&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;ADM UI: Handle apostrophes in app name&lt;/li&gt;
&lt;li&gt;ZIP type validation for Automated Import Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="&amp;nbsp;september&amp;nbsp;2018_-_release_2.5.1"&gt;&amp;nbsp;September&amp;nbsp;2018 - Release 2.5.1&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;New buildMultipleApps action&lt;/li&gt;
&lt;li class="li1"&gt;Check version of tools with -v or -version flags&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed ADM SQL errors with non-null statements and forward slash as delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.5.0"&gt;August&amp;nbsp;2018 - Release 2.5.0&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added Flyway DB version control tool to command line and AIM GUI&lt;/li&gt;
&lt;li class="li1"&gt;Allow import of DDL scripts or Flyway scripts without an application zip or patch zip&lt;/li&gt;
&lt;li class="li1"&gt;Added Folder Listener script that will run addContents automatically when a file is dropped into a folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added buildAllApps to list of approved actions&lt;/li&gt;
&lt;li class="li1"&gt;Set inspect_only properly in AIM&lt;/li&gt;
&lt;li class="li1"&gt;Fixed bug where repo would be cloned into a folder with an incorrect name&lt;/li&gt;
&lt;li class="li1"&gt;Passed in correct authentication token for buildAllApps and buildSingleApp&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.4.7"&gt;August&amp;nbsp;2018 - Release 2.4.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added &amp;quot;buildSingleApp&amp;quot; action to extract one app from multi app repo&lt;/li&gt;
&lt;li class="li1"&gt;Renamed &amp;quot;buildPackage&amp;quot; action to &amp;quot;buildAllApps&amp;quot; to better clarify the functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed miscellaneous issues with parsing SQL in DDL file&lt;/li&gt;
&lt;li class="li1"&gt;Mark/reset issue with large customization files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june&amp;nbsp;2018_-_release_2.4.6"&gt;June&amp;nbsp;2018 - Release 2.4.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added an import-manager.properties file to set default values for importing applications&lt;/li&gt;
&lt;li&gt;Automated versioning manager supports adding a package with multiple patches&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Application version UUID is updated when adding patches to a version control&lt;/li&gt;
&lt;li&gt;Import no longer fails when SQL in DDL file contains a &amp;quot;;&amp;quot;, &amp;quot;&amp;ndash;&amp;quot; or &amp;quot;/**/&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2018_-_release_2.4.5"&gt;March 2018 - Release 2.4.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add support for proxy configuration in the deployment client script with parameters &amp;quot;proxy_port&amp;quot; and &amp;quot;proxy_url&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2018_-_release_2.4.4"&gt;January&amp;nbsp;2018 - Release 2.4.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2018_-_release_2.4.3"&gt;January 2018 - Release 2.4.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.4&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2017_-_release_2.4.2"&gt;September 2017 - Release 2.4.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.3&lt;/li&gt;
&lt;li&gt;Better handling of end of line characters in the SQL scripts&lt;/li&gt;
&lt;li&gt;Support for customization file when deploying an application package&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2017_-_release_2.4.1"&gt;June 2017 - Release 2.4.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.2&lt;/li&gt;
&lt;li&gt;Fix defect preventing to execute DB scripts as part of a deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2017_-_release_2.4.0"&gt;January 2017 - Release 2.4.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.1&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october_2016_-_release_2.3"&gt;October 2016 - Release 2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 16.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.9"&gt;September 2016 - Release 2.2.9&lt;/h3&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Successfully deploy application packages containing new Datastore entities and new dependents on these entities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.8"&gt;September 2016 - Release 2.2.8&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with missing artifacts in package when using START_HASH and END_HASH.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.7"&gt;August 2016 - Release 2.2.7&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing updated Documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.6"&gt;August 2016 - Release 2.2.6&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New parameter no_update to build a package from the local repository without first performing a checkout&lt;/li&gt;
&lt;li&gt;New integrity control when checking in applications and patches&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.5"&gt;August 2016 - Release 2.2.5&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing new CDTs and updated CDTs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.4"&gt;June 2016 - Release 2.2.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.3"&gt;June 2016 - Release 2.2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Include the source code in all modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.2"&gt;June 2016 - Release 2.2.2&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new parameter appian_objects_repo_path to specify where the Appian artifacts are located in the repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="may_2016_-_release_2.2.0"&gt;May 2016 - Release 2.2.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for admin console packages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed update-database-schema to support native product capability of automatic database updates via datastore and administration console.&lt;/li&gt;
&lt;li&gt;Updated Web Browser UI style&lt;/li&gt;
&lt;li&gt;Removed option for &amp;quot;Automatically update the database schema when publishing the data stores&amp;quot; from the Web Browser UI&lt;/li&gt;
&lt;li&gt;Added support for admin console deployments&lt;/li&gt;
&lt;li&gt;Added support in command line for inspect_only parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2016_-_release_2.1.0"&gt;March 2016 - Release 2.1.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for input flexibility. Now, the command line for versioning manager supports all possible parameters.&lt;/li&gt;
&lt;li&gt;Allowed tags as inputs to start hash and end hash.&lt;/li&gt;
&lt;li&gt;Added inputs of the following predefined keywords: FIRST_COMMIT (which maps to first commit ever made) and LAST_COMMIT (the previous commit). NOTE: this is only allowed on the start hash input.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for 16.1.&lt;/li&gt;
&lt;li&gt;Added action for &amp;quot;Inspect Only&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment Automation</title><link>https://community.appian.com/success/w/guide/3328/deployment-automation/revision/8</link><pubDate>Thu, 26 Oct 2023 18:23:03 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43c6339b-3b7e-4b44-ba4b-4a8c46753052</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3328/deployment-automation#comments</comments><description>Revision 8 posted to Guide by joel.larin on 10/26/2023 6:23:03 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian provides several DevOps tools to automate the &lt;a href="https://docs.appian.com/suite/help/latest/devops-with-appian.html#deploy" rel="noopener noreferrer" target="_blank"&gt;deployment of Appian applications&lt;/a&gt; such as Compare &amp;amp; Deploy and Deployment APIs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://docs.appian.com/suite/help/latest/Deploy_to_Target_Environments.html#prodlink-external-deployment-apis"&gt;Deployment APIs&lt;/a&gt; offer a set of API&amp;nbsp;endpoints that allow you to inspect and deploy applications, packages, import customization files, plug-ins, and execute database scripts.&amp;nbsp;These APIs allow you to programmatically trigger deployments and integrate your Appian release into an automated pipeline. You can set up your pipeline once and run it the exact same way for all future deployments, saving time and avoiding manual errors. It is recommended to use the Deployment APIs whenever possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The tools described in this play offer a few alternatives to Appian base product features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tightly integrate with a version control system to store and retrieve package files using the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Automated Versioning Manager (AVM)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Programmatically deploy Admin Console settings and applications using the &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) plug-in&lt;/a&gt;&amp;nbsp;and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="automated_versioning_manager"&gt;Automated Versioning Manager&lt;/h2&gt;
&lt;h3 id="summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;The Automated Versioning Manager - available on the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt; - is a tool that helps managing Appian applications and database DDL files in a version control system. Given an Appian application ZIP file, the Automated Versioning Manager performs the following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;It unzips the application and organizes the artifact XML files in the repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It automates the check-in and checkout operations with the version control system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It generates application packages for import in Appian based on the contents of the repository and a range of changes to include.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal of this tool is to facilitate the adoption and usage of a version control system to perform configuration management of the Appian applications and database DDL files.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/1374.deployment_5F00_automation_5F00_00.png" /&gt;&lt;/div&gt;
&lt;h3 id="features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Version Control integration (Git, SVN)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supports Appian applications and patches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate import package from hash ranges&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Folder Listener to add contents to Version Control&lt;/li&gt;
&lt;li&gt;Supports GitHub, GitLab, and BitBucket for Version Control&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage"&gt;Usage&lt;/h3&gt;
&lt;p&gt;The automated versioning tool is a script to be run from the command line or terminal. It contains a wrapper for Windows (version-application.bat) and Linux (version-application.sh) systems. This document will first discuss how to use the tool in general, and then discuss use cases to give concrete examples. All parameters can be passed either on the command line or in the properties file.&lt;/p&gt;
&lt;h3 id="script-execution"&gt;Script Execution&lt;/h3&gt;
&lt;p&gt;To run the script, open a command window and navigate to the directory where the automated versioning scripts are located. They are named version-application.bat or version-application.sh.&lt;/p&gt;
&lt;p&gt;Use the -h or -help parameters to view the help menu within the script. The parameters are described here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Required Parameters (required for all four actions: addContents, buildAllApps, buildSingleApp, buildMultipleApps, and updateLocalRepo)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-action - Selects which action of the script to run. Acceptable values are: addContents, updateLocalRepo, buildAllApps,&amp;nbsp;buildSingleApp, and&amp;nbsp;buildMultipleApps. Each action is detailed in the use cases below.&lt;/li&gt;
&lt;li&gt;-vc_username -The username associated with the version control (Git or SVN) account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-vc_password -Please check the Security Settings of the version control account. If you have 2-factor authentication enabled, the password requires the version control account token. If you do NOT have 2-factor authentication enabled, the password is the one associated with the version control account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for addContents action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-application_path - The path on your filesystem where the application ZIP is located.&lt;/li&gt;
&lt;li&gt;-admin_console_path - The path on your filesystem where the admin console ZIP file is located.&lt;/li&gt;
&lt;li&gt;-ddl_path - List of comma-separated paths for the DDL files to be included in the deployment package.&lt;/li&gt;
&lt;li&gt;-flyway_path&amp;nbsp;- List of comma-separated paths for the directories to execute DB migrations via Flyway.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;. To learn how&amp;nbsp;the Automated Import Manager&amp;nbsp;uses Flyway, refer to &lt;a href="#aim_features"&gt;AIM Features&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-ddl_ds - List of comma-separated datasources associated with the provided DDL files. Must provide the same number of entries as number of DDL files specified with the -ddl_path option or number of directories specified with the -flyway_path option. &lt;strong&gt;NOTE: the order of the specified datasource names must match the order of the script paths specified.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-uuid - The UUID of the application to which the contents of the application should be added. This option is only used if deploying a patch application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- The&amp;nbsp;name of the application to which the contents of the application should be added. This option is only used if deploying a&amp;nbsp;patch&amp;nbsp;application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-commit_message - The message that will be associated with the commit. If not included, a default commit message Committed by @username is provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildAllApps&amp;nbsp;action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-start_hash - Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit. &lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash - End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildSingleApp action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid - The UUID of the application you want to build.&lt;/li&gt;
&lt;li&gt;-application_name - The name of the application you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildMultipleApps action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid&amp;nbsp;- Comma separated list of UUIDs of the applications you want to build.&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- Comma separated list of names of the applications that you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update&amp;nbsp;- Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for updateLocalRepo action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are no additional options (other than required options) for updateLocalRepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Additional Parameters&lt;/strong&gt; - These parameters are REQUIRED, and may be specified here or in the properties file (described in the following section). If they are specified in both locations, the parameters specified in the command line take precedence.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-version_control_type - The version control type used, either GIT or SVN.&lt;/li&gt;
&lt;li&gt;-local_repo_path - The path on the filesystem where the local repository is located. All files on the remote repository are cloned to this path. Example: C:\\MyFiles\\ChangeManagementRepo. &lt;strong&gt;NOTE: if using Windows, be sure to include double forward slashes (as seen in the example) for path separation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-appian_objects_repo_path - Path to the folder containing the Appian objects in the repository. This path is relative to the path of the local repository. If not specified, the Appian objects are checked out to and committed from the root of the local repository path.&lt;/li&gt;
&lt;li&gt;-repo_url - The URL that defines the remote repository. Example: https://github.com/git-username/project-name.git, svn+ssh://svn.code.sf.net/p/project-name/code&lt;/li&gt;
&lt;li&gt;-package_path - &lt;em&gt;For buildAllApps,&amp;nbsp;&lt;em&gt;buildSingleApp, and&amp;nbsp;&lt;em&gt;&lt;em&gt;buildMultipleApps&lt;/em&gt;&lt;/em&gt;&amp;nbsp;&lt;/em&gt;only.&lt;/em&gt; The path on the filesystem where packages are generated. Must include filename of package.&lt;/li&gt;
&lt;li&gt;-branch_name - Branch to check out and use (if not master)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="configuring-using-the-properties-file"&gt;Configuring using the Properties File&lt;/h3&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the configuration file version-manager.properties. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;In case an option is specified both on the command line and in the properties file, the command line value takes precedence and is used.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false &amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;p&gt;If used, the property&amp;nbsp;&lt;code&gt;appianObjectRepoPath&lt;/code&gt;&amp;nbsp;must not reference a file path more than one level below the root directory of the repository. Ex.&amp;nbsp;appianObjectRepoPath =&amp;nbsp;/appian/objects&amp;nbsp;is an acceptable configuration but&amp;nbsp;appianObjectRepoPath = /appian/folder/objects is not valid.&lt;/p&gt;
&lt;h3 id="use-cases"&gt;Use Cases&lt;/h3&gt;
&lt;h4 id="1-new-developer-joins-team-updatelocalrepo"&gt;#1: New developer joins team (updateLocalRepo)&lt;/h4&gt;
&lt;p&gt;In this use case, a new developer has joined the team and wants to get a copy of all the work completed so far. The developer:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Update version-manager.properties with the appropriate fields. See the &lt;a href="#Script_Setup1"&gt;Script Setup&lt;/a&gt; section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;updateLocalRepo&lt;/strong&gt; as the action flag. The developer must provide the username and password for authenticating against their version control system (-vc_username, -vc_password).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action updateLocalRepo -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, the developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;h4 id="2-developer-adds-artifacts-to-the-repository-addcontents"&gt;#2: Developer adds artifacts to the repository (addContents)&lt;/h4&gt;
&lt;p&gt;In this use case, the developer on a team has been working in the development environment and has changes he wishes to add to the repository. The changes may be a new application or a patch to an existing application. Note: the repository serves as a record of changes, and can be thought of as an additional Appian environment. The steps involved are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the Appian development environment, create an application (or a patch) that contains the changed objects.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Export those changes and download the application ZIP file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;addContents&lt;/strong&gt; as the action flag. The developer must provide the path of the ZIP file they exported (-application_path) from Appian in step 2. They must also provide the username and password for authenticating their version control system (-vc_username, -vc_password). &lt;strong&gt;NOTE: these are NOT Appian credentials.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Optional: if the application specified for -application_path is a patch, update the -uuid option to specify the parent application&amp;rsquo;s uuid. &lt;em&gt;The script will exit with error if a patch application ZIP is provided but no uuid is passed in.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Optional: if DDL scripts have been modified, specify the path(s) and their associated JDBC datasource names. NOTE: The same number of DDL scripts and datasource names must be entered into the script, even if the datasource is the same for all scripts. For example: the developer wishes to add two ddl scripts located at C:\DDLs\script1.sql and C:\DDLs\script2.sql. They do so by setting the -ddl_path option as C:\DDLs\script1.sql,C:\DDLs\script2.sql If both scripts are to be executed on jdbc/AppianDS, they must set the -ddl_ds option as jdbc/AppianDS,jdbc/AppianDS. Note that the datasource name is passed in &lt;strong&gt;&lt;em&gt;twice&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: include a custom commit message using the -commit_message option&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="caution"&gt;WARNING: It is HIGHLY recommended that DDL scripts are developed INCREMENTALLY. That is, do not modify existing DDL scripts - instead, create new scripts that only contain the commands the designer wishes to execute.This is because if the designer updates an existing DDL script, all lines in the script will be executed. This can lead to data integrity issues if not managed properly. PLEASE EXERCISE CAUTION WHEN MODIFYING EXISTING DDL SCRIPTS. Example: if the designer modifies a script that contains commands to drop and recreate a table, the script will drop and recreate the table even if the designer did not modify that section.&lt;/div&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action addContents -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -application_path &amp;quot;C:\App.zip&amp;quot; -ddl_ds jdbc/AppianAnywhere -ddl_path “C:\script1.sql” -commit_message “Adding account executive record”&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When the script is executed, three things occur:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The application ZIP is unzipped and placed into the local repository, and the DDL files are placed into a ddl_files folder within the local repository. If the -uuid option is selected, the appropriate application xml file is updated.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The changes are committed (and pushed, if using Git) to the remote repository.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When the package is imported into Appian, all lines within script1.sql will be executed and contents within the application ZIP are imported.&lt;/p&gt;
&lt;p&gt;Using Folder Listener:&lt;/p&gt;
&lt;p&gt;Alternatively, instead of running the script, the developer can execute&amp;nbsp;avm-folder-listener-&amp;lt;os&amp;gt;&amp;nbsp;in the&amp;nbsp;folder-listener&amp;nbsp;directory. The following command prompt will appear:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x960/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png" /&gt;&lt;/div&gt;
&lt;p&gt;The developer will provide the directory that the application or patch ZIPs will be dropped into as well as the directory of the automated versioning manager tool. Otherwise, the default directories will be used.&lt;/p&gt;
&lt;p&gt;Once setup, the developer can drag the desired application ZIP into the specified directory and the application ZIP will be versioned in their GIT repository. This is assuming that all necessary fields have already been configured in the file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;p&gt;If the developer is supplying a patch ZIP, the console will prompt the developer for the associated application uuid or name. Once supplied, the patch will be deployed to the specified environment in the&amp;nbsp;file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;h4 id="3-build-master-generates-new-rc-deployment-package-buildpackage"&gt;#3: Build master generates new RC deployment package (buildAllApps)&lt;/h4&gt;
&lt;p&gt;In this use case, all additions made by the team have been incorporated into the remote repository and have gone through sufficient testing. The build master is now ready to promote a new package to the higher environment. The new package should include all additions and changes since the last deployment. The build master will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;(If not done previously) Update version-manager.properties with the appropriate fields. See the Script Setup section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;buildAllApps&lt;/strong&gt; as the action flag. The build master must provide the username and password for authenticating against their version control system (-vc_username, -vc_password). To get a specific set of changes, input a value for the -start_hash option and the -end_hash option. This will generate the package with all new and changed files between the two hash options.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;NOTE: the package will &lt;strong&gt;NOT&lt;/strong&gt; include the changes introduced in the start hash, but &lt;strong&gt;WILL&lt;/strong&gt; include changes introduced in the end hash.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Command:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action buildAllApps -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -start_hash ac37459 -end_hash 6e83b42&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, it generates a package at the location specified by the packagePath field in version-manager.properties.&lt;/p&gt;
&lt;p&gt;Finally, the build master will import the RC package into the higher environment using the Automated Import tool as described later in this play.&lt;/p&gt;
&lt;h3 id="_using_subversion_as_version_control_system"&gt;Using Subversion as Version Control System&lt;/h3&gt;
&lt;p&gt;To allow the Automated Versioning Manager to perform the checkout and commit operations with Subversion, the tool assumes the common Subversion project structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;trunk&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;branches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tags&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The location of the repository root must be provided by the property repoURL.&lt;/p&gt;
&lt;p&gt;Example: The following version-manager.properties configuration checks out the release 1 branch from the repository located at &lt;a href="https://svn.code.sf.net/p/deploymentautomationexample/code"&gt;https://svn.code.sf.net/p/deploymentautomationexample/code&lt;/a&gt; and commit all changes to the branch &amp;quot;release1&amp;quot;. Optionally, you may specify each of these parameters as command line arguments instead of using the version-manager.properties file.&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=SVN

repoUrl=https://svn.code.sf.net/p/deploymentautomationexample/code

branchName=branches/release1&lt;/pre&gt;&lt;/pre&gt;
&lt;h3 id="_using_git_as_version_control_system"&gt;Using Git as Version Control System&lt;/h3&gt;
&lt;p&gt;To use Git with the Automated Versioning Manager, properties may be specified on the command line or version-manager.properties should be updated as follows:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=GIT

repoUrl=https://github.com/gituser/testgitrepo.git

branchName=newbranch&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;branchName is an optional field. If the branch does not exist remotely, the tool will automatically create it on the local machine and push it to the remote repository as soon as addContents is executed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: if you are planning to check out a private repository, use the Git SSH URL rather than the HTTPS URL.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="automated_import_manager"&gt;Automated Import Manager&lt;/h2&gt;
&lt;h3 id="_summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;With the Cloud-approved Appian &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager plug-in&lt;/a&gt; and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager client&lt;/a&gt;&amp;nbsp;available on the AppMarket, users can automatically deploy applications and patch contents (either applications from Appian OR packages generated from the &lt;a href="#Automated_Versioning_Manager"&gt;Automated Versioning Manager&lt;/a&gt;) to any environment. Users will have three options for deployment: the tool can either deploy from the tool&amp;rsquo;s user interface in one click, trigger the deployment from an external CI tool, or deploy from the command line.&lt;/p&gt;
&lt;p&gt;The Automated Import Manager automates the process of inspecting the application, executing DDL scripts, &lt;strong&gt;updating CDTs, republishing the appropriate datastores&lt;/strong&gt;, and importing the application.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4011.deployment_5F00_automation_5F00_02.png" /&gt;&lt;/div&gt;
&lt;h3 id="aim_features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect Application:&lt;/strong&gt; This tool will automatically mimic the &amp;quot;Inspect&amp;quot; functionality that exists within Appian&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Validating Application Content:&lt;/strong&gt; In addition to inspecting the application, the tool will ensure all CDT dependents are included to avoid objects pointing to older versions.&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute DDL Scripts:&lt;/strong&gt; DDL scripts can be uploaded and automatically executed. NOTE: For Microsoft SQL Server, only Transact-SQL statements are valid.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute Migrations with Flyway:&amp;nbsp;&lt;/strong&gt;Flyway is a tool used for managing database migrations. It makes it easier to track SQL script versions and not re-execute SQL scripts that have already been run. If a Flyway&amp;nbsp;directory is provided, the Automated Import Manager will automatically&amp;nbsp;execute migrations against the corresponding datasource.&amp;nbsp;Learn more about Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/getstarted/how"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Update CDTs:&lt;/strong&gt; Users are no longer required to delete CDTs before updating them, this tool will perform this step automatically&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import Application and admin console configuration:&lt;/strong&gt; Automatically import an application with an optional customization file&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Republish Datastores:&lt;/strong&gt; After application import, datastores will be automatically published or republished&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add Patches:&lt;/strong&gt; Automatically add patch contents to a specified existing application&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage_"&gt;Usage&lt;/h3&gt;
&lt;h3 id="1-deploy-from-the-web-browser-ui"&gt;&amp;nbsp;Deploy from the Web Browser UI&lt;/h3&gt;
&lt;p&gt;The tool collects usage metrics by default. To opt-out of metrics collection, check the below option on the Web Browser UI:&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1600x480/__key/communityserver-wikis-components-files/00-00-00-00-46/0702.pastedimage1539370754100v1.png" /&gt;&lt;/div&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/796x1133/__key/communityserver-wikis-components-files/00-00-00-00-46/4186.Screen-Shot-2018_2D00_08_2D00_30-at-3.22.31-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Log into Appian as a system administrator&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the Deployment Automation UI available at the URL: &amp;lt;appian&amp;gt;/suite/plugins/servlet/deploymentautomation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Upload the patch or application you wish to import.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If this application is a patch, select the parent application to which patch contents should be added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the new application requires changes to the database schema (i.e. new or updated CDTs) you must choose one of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upload the corresponding DDL script(s) that accurately reflect these additions and/or updates.&lt;/li&gt;
&lt;li&gt;Set the datastore to &amp;quot;Automatically update database schema&amp;quot; and set &amp;quot;Allow Database Schema Changes Through Data Stores&amp;quot; in the Deployment section of the Appian Administration Console&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click on the button &amp;quot;Start Deployment&amp;quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;During the deployment, the screen is automatically refreshed every 5 seconds with the latest status of the deployment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the deployment is complete, the browser will update with a status page.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8228.deployment_5F00_automation_5F00_04.png" /&gt;&lt;/div&gt;
&lt;h3 id="2-deploy-from-the-command-line-script"&gt;&amp;nbsp;Deploy from the Command Line Script&lt;/h3&gt;
&lt;p&gt;The command line script - the client - can be downloaded from the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false&amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x2000/__key/communityserver-wikis-components-files/00-00-00-00-46/7723.Screen-Shot-2018_2D00_08_2D00_30-at-3.29.54-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open a command window in the same folder to which the client script and supporting libraries were unzipped.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the help guide pictured above, run the proper command to automatically import the application. Use -h or -help to view this menu at any time.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;-ac_customization_path: Indicates the path to the customization file to use when deploying the admin console&amp;nbsp;package or the application package.&lt;/li&gt;
&lt;li&gt;-admin_console_path: Indicates the path to the admin console file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-application_path: Indicates the path to the application file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-ddl_ds: Optional, use only if providing DDL scripts. The name of the datasource to use with the corresponding DDL script. Use a comma separator to enter multiple datasources.&lt;/li&gt;
&lt;li&gt;-ddl_path: Optional, use only if providing DDL scripts. Indicates the path to the DDL scripts to execute. Use a comma separator to enter multiple DDL script paths. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-flyway_path: Optional, use only if providing directories to execute DB migrations via Flyway. Use a comma separator to enter multiple directory paths. NOTE: Use quotations around the entry.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-force_import: A boolean flag which specifies whether or not the import ignores impact analysis results.If true, the import will occur even if objects with CDT references are missing&lt;/li&gt;
&lt;li&gt;-import_customization_path: Indicates the path to the import customization file to use&lt;/li&gt;
&lt;li&gt;-inspect_only: Optional, use to run an inspection of the package. Indicates the package should not be deployed but inspected only.&lt;/li&gt;
&lt;li&gt;-password: Password of the Appian user account&lt;/li&gt;
&lt;li&gt;-proxy_port: Optional, port of the proxy server to use to connect to Appian. This parameter is only used if the parameter -proxy_url is defined. The default value is 8080.&lt;/li&gt;
&lt;li&gt;-proxy_url: Optional, URL of the proxy to use to connect to Appian.&lt;/li&gt;
&lt;li&gt;-url: URL of the environment, of the format &lt;a href="http://example.appian.com/suite"&gt;https://example.appian.com/suite&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-username: Username of the Appian user account to use for deployment&lt;/li&gt;
&lt;li&gt;-uuid: UUID of the application to which patch contents will be added&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy the application by typing the command deploy-application.bat and including the relevant parameters. Your command will look something like the one pictured below.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;deploy-application.bat -application_path &amp;quot;PATH TO APPLICATION ZIP&amp;quot; -username SERVICE_ACCOUNT_USERNAME -password SERVICE_ACCOUNT_PASSWORD -url APPIAN_URL -ddl_path &amp;quot;PATH TO DLL 1, PATH TO DLL 2&amp;quot; -ddl_ds jdbc/Appian1,jdbc/Appian2&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the &lt;strong&gt;configuration file&amp;nbsp;import-manager.properties&lt;/strong&gt;. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;During the deployment, the prompt is automatically refreshed every 5 seconds with the latest status of the deployment. When the deployment is complete, a status response (like the one pictured below) will display.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6746.deployment_5F00_automation_5F00_06.png" /&gt;&lt;/div&gt;
&lt;h3 id="3-deploy-from-an-external-continuous-integration-tool"&gt;Deploy from an External Continuous Integration tool&lt;/h3&gt;
&lt;p&gt;Additional Requirement:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An existing external Continuous Integration tool (such as Jenkins or Hudson) that is properly configured&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The steps below provide the high level steps to deploy an application from Jenkins.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new external job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the job to run the import script using the guidance in Deployment Option #2 listed above&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute the job&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8132.deployment_5F00_automation_5F00_07.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;When the deployment is complete, check the status page verify that the import was successful.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/5078.deployment_5F00_automation_5F00_08.png" /&gt;&lt;/div&gt;
&lt;h2 id="troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;h3 id="deciphering_script_error_messages"&gt;Deciphering Script Error Messages&lt;/h3&gt;
&lt;h3 id="inspect-failure"&gt;Inspect Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails on inspect, please check the error log and inspect log to determine the root cause of the inspect error. Additionally, please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Inspect_Package.html"&gt;Inspect Package&lt;/a&gt; documentation to determine what common inspect issues may arise.&lt;/p&gt;
&lt;h3 id="package-validation-failure"&gt;Package Validation Failure&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;This feature is only for Appian 7.11 and above.&lt;/strong&gt; If the Automated Import script fails during package validation, this means that objects with certain CDT dependencies are missing. Please check the error message which will include the list of missing required dependencies. Appian recommends to include these dependencies in the application prior to importing.&lt;/p&gt;
&lt;p&gt;In case you want to proceed with deploying the application regardless of missing CDT dependencies, use the flag -f.&lt;/p&gt;
&lt;h3 id="import-failure"&gt;Import Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails during import, it will produce an error log that contains the reason(s) for import failure. Please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Application_Deployment_Guidelines.html#Issues_During_Export_or_Import"&gt;Application Deployment Guidelines&lt;/a&gt; documentation on import issues to determine the root cause of the import failure.&lt;/p&gt;
&lt;h3 id="invalid-credentials"&gt;Invalid Credentials&lt;/h3&gt;
&lt;p&gt;Please ensure that these credentials are associated with an active Appian system administrator account. Basic user credentials cannot be used.&lt;/p&gt;
&lt;h3 id="connection-refused-with-deployment-command-line-script"&gt;Connection Refused With Deployment Command Line Script&lt;/h3&gt;
&lt;p&gt;A &amp;quot;Connection Refused&amp;quot; error could be the result of using the wrong URL when executing the script. The URL provided as a parameter must:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;include the suffix &amp;quot;/suite&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include a port number if not using the port 80 with HTTP or port 443 with HTTPS&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="release_notes"&gt;Release Notes&lt;/h2&gt;
&lt;h3 id="september&amp;nbsp;2021_-_release_2.5.13"&gt;September&amp;nbsp;2021 - Release 2.5.13&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed an issue where setting &amp;quot;appianObjectsRepoPath&amp;quot; prevented a package that included a patches.xml file from being processed successfully&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2021_-_release_2.5.12"&gt;March&amp;nbsp;2021 - Release 2.5.12&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Updated the link to the import log in the ADM servlet after a change was made to the Appian API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed a bug that was preventing Flyway files from being included in metadata.properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september&amp;nbsp;2020_-_release_2.5.11"&gt;September&amp;nbsp;2020 - Release 2.5.11&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Upgraded Flyway version to 6.5.5 for compatibility with MariaDB.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2020_-_release_2.5.10"&gt;August&amp;nbsp;2020 - Release 2.5.10&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added the ability to dynamically generate the Metadata file for the &amp;quot;buildAllApps&amp;quot; action to reflect only the list of database scripts that are included in the package for a given commit range.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li class="li1"&gt;Fixed the interpretation of &amp;quot;appianObjectsRepoPath&amp;quot; on Windows platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="december&amp;nbsp;2019&amp;nbsp;-_release_2.5.9"&gt;December&amp;nbsp;2019&amp;nbsp;- Release 2.5.9&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added DNS proxy support to ADM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AIM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AVM&lt;/li&gt;
&lt;li class="li1"&gt;Added support for special characters in passwords in ADM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="july&amp;nbsp;2019&amp;nbsp;-_release_2.5.8"&gt;July&amp;nbsp;2019&amp;nbsp;- Release 2.5.8&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;Fixed the problem with obtaining TransactionManager and creating DataConfiguration against latest the Appian version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april&amp;nbsp;2019&amp;nbsp;-_release_2.5.7"&gt;April&amp;nbsp;2019&amp;nbsp;- Release 2.5.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added commit message prompt to folder listener&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed Windows issue with pushing file updates to versioning manager&lt;/li&gt;
&lt;li class="li1"&gt;Fixed import patch failure not adding newly created objects issue&lt;/li&gt;
&lt;li class="li1"&gt;Fixed semicolon separator parsing issue&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2019_-_release_2.5.6"&gt;March&amp;nbsp;2019 - Release 2.5.6&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added proxy authentication support for import client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="february&amp;nbsp;2019_-_release_2.5.5"&gt;February&amp;nbsp;2019 - Release 2.5.5&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed DDL paths bug&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2019_-_release_2.5.4"&gt;January&amp;nbsp;2019 - Release 2.5.4&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Improved descriptions of errors encountered during deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed &amp;quot;Connection Refused&amp;quot; bug when running on a Jenkins server&lt;/li&gt;
&lt;li&gt;Fixed &amp;quot;buildSingleApp&amp;quot; AVM bug when specifying an appianObjectsRepoPath&lt;/li&gt;
&lt;li&gt;Fixed rare &amp;quot;hanging&amp;quot; bug in AIM Client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="november&amp;nbsp;2018_-_release_2.5.3"&gt;November&amp;nbsp;2018 - Release 2.5.3&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Created a reset command for Remote Automated Deployment Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Version and Import Metrics Logger Initialized correctly to fix null pointer exception&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october&amp;nbsp;2018_-_release_2.5.2"&gt;October&amp;nbsp;2018 - Release 2.5.2&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li&gt;Folder listener to auto trigger &amp;ldquo;Add Contents&amp;rdquo; action&lt;/li&gt;
&lt;li&gt;Field validation for import and versioning manager properties files&lt;/li&gt;
&lt;li&gt;Usage metrics collection to better understand tool use&lt;/li&gt;
&lt;li&gt;Updated error log messages&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;ADM UI: Handle apostrophes in app name&lt;/li&gt;
&lt;li&gt;ZIP type validation for Automated Import Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="&amp;nbsp;september&amp;nbsp;2018_-_release_2.5.1"&gt;&amp;nbsp;September&amp;nbsp;2018 - Release 2.5.1&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;New buildMultipleApps action&lt;/li&gt;
&lt;li class="li1"&gt;Check version of tools with -v or -version flags&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed ADM SQL errors with non-null statements and forward slash as delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.5.0"&gt;August&amp;nbsp;2018 - Release 2.5.0&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added Flyway DB version control tool to command line and AIM GUI&lt;/li&gt;
&lt;li class="li1"&gt;Allow import of DDL scripts or Flyway scripts without an application zip or patch zip&lt;/li&gt;
&lt;li class="li1"&gt;Added Folder Listener script that will run addContents automatically when a file is dropped into a folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added buildAllApps to list of approved actions&lt;/li&gt;
&lt;li class="li1"&gt;Set inspect_only properly in AIM&lt;/li&gt;
&lt;li class="li1"&gt;Fixed bug where repo would be cloned into a folder with an incorrect name&lt;/li&gt;
&lt;li class="li1"&gt;Passed in correct authentication token for buildAllApps and buildSingleApp&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.4.7"&gt;August&amp;nbsp;2018 - Release 2.4.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added &amp;quot;buildSingleApp&amp;quot; action to extract one app from multi app repo&lt;/li&gt;
&lt;li class="li1"&gt;Renamed &amp;quot;buildPackage&amp;quot; action to &amp;quot;buildAllApps&amp;quot; to better clarify the functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed miscellaneous issues with parsing SQL in DDL file&lt;/li&gt;
&lt;li class="li1"&gt;Mark/reset issue with large customization files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june&amp;nbsp;2018_-_release_2.4.6"&gt;June&amp;nbsp;2018 - Release 2.4.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added an import-manager.properties file to set default values for importing applications&lt;/li&gt;
&lt;li&gt;Automated versioning manager supports adding a package with multiple patches&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Application version UUID is updated when adding patches to a version control&lt;/li&gt;
&lt;li&gt;Import no longer fails when SQL in DDL file contains a &amp;quot;;&amp;quot;, &amp;quot;&amp;ndash;&amp;quot; or &amp;quot;/**/&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2018_-_release_2.4.5"&gt;March 2018 - Release 2.4.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add support for proxy configuration in the deployment client script with parameters &amp;quot;proxy_port&amp;quot; and &amp;quot;proxy_url&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2018_-_release_2.4.4"&gt;January&amp;nbsp;2018 - Release 2.4.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2018_-_release_2.4.3"&gt;January 2018 - Release 2.4.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.4&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2017_-_release_2.4.2"&gt;September 2017 - Release 2.4.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.3&lt;/li&gt;
&lt;li&gt;Better handling of end of line characters in the SQL scripts&lt;/li&gt;
&lt;li&gt;Support for customization file when deploying an application package&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2017_-_release_2.4.1"&gt;June 2017 - Release 2.4.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.2&lt;/li&gt;
&lt;li&gt;Fix defect preventing to execute DB scripts as part of a deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2017_-_release_2.4.0"&gt;January 2017 - Release 2.4.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.1&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october_2016_-_release_2.3"&gt;October 2016 - Release 2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 16.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.9"&gt;September 2016 - Release 2.2.9&lt;/h3&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Successfully deploy application packages containing new Datastore entities and new dependents on these entities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.8"&gt;September 2016 - Release 2.2.8&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with missing artifacts in package when using START_HASH and END_HASH.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.7"&gt;August 2016 - Release 2.2.7&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing updated Documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.6"&gt;August 2016 - Release 2.2.6&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New parameter no_update to build a package from the local repository without first performing a checkout&lt;/li&gt;
&lt;li&gt;New integrity control when checking in applications and patches&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.5"&gt;August 2016 - Release 2.2.5&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing new CDTs and updated CDTs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.4"&gt;June 2016 - Release 2.2.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.3"&gt;June 2016 - Release 2.2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Include the source code in all modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.2"&gt;June 2016 - Release 2.2.2&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new parameter appian_objects_repo_path to specify where the Appian artifacts are located in the repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="may_2016_-_release_2.2.0"&gt;May 2016 - Release 2.2.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for admin console packages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed update-database-schema to support native product capability of automatic database updates via datastore and administration console.&lt;/li&gt;
&lt;li&gt;Updated Web Browser UI style&lt;/li&gt;
&lt;li&gt;Removed option for &amp;quot;Automatically update the database schema when publishing the data stores&amp;quot; from the Web Browser UI&lt;/li&gt;
&lt;li&gt;Added support for admin console deployments&lt;/li&gt;
&lt;li&gt;Added support in command line for inspect_only parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2016_-_release_2.1.0"&gt;March 2016 - Release 2.1.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for input flexibility. Now, the command line for versioning manager supports all possible parameters.&lt;/li&gt;
&lt;li&gt;Allowed tags as inputs to start hash and end hash.&lt;/li&gt;
&lt;li&gt;Added inputs of the following predefined keywords: FIRST_COMMIT (which maps to first commit ever made) and LAST_COMMIT (the previous commit). NOTE: this is only allowed on the start hash input.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for 16.1.&lt;/li&gt;
&lt;li&gt;Added action for &amp;quot;Inspect Only&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment Automation</title><link>https://community.appian.com/success/w/guide/3328/deployment-automation/revision/7</link><pubDate>Thu, 26 Oct 2023 18:18:40 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43c6339b-3b7e-4b44-ba4b-4a8c46753052</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3328/deployment-automation#comments</comments><description>Revision 7 posted to Guide by joel.larin on 10/26/2023 6:18:40 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian provides several DevOps tools to automate the &lt;a href="https://docs.appian.com/suite/help/latest/devops-with-appian.html#deploy" rel="noopener noreferrer" target="_blank"&gt;deployment of Appian applications&lt;/a&gt; such as Compare &amp;amp; Deploy and Deployment APIs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://docs.appian.com/suite/help/latest/Deploy_to_Target_Environments.html#prodlink-external-deployment-apis"&gt;Deployment APIs&lt;/a&gt; offer a set of API&amp;nbsp;endpoints that allow you to inspect and deploy applications, packages, import customization files, plug-ins, and execute database scripts.&amp;nbsp;These APIs allow you to programmatically trigger deployments and integrate your Appian release into an automated pipeline. You can set up your pipeline once and run it the exact same way for all future deployments, saving time and avoiding manual errors. It is recommended to use the Deployment APIs whenever possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The tools described in this play offer a few alternatives to Appian base product features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tightly integrate with a version control system to store and retrieve package files using the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Automated Versioning Manager (AVM)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Programmatically deploy Admin Console settings and applications using the &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) plug-in&lt;/a&gt;&amp;nbsp;and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="automated_versioning_manager"&gt;Automated Versioning Manager&lt;/h2&gt;
&lt;h3 id="summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;The Automated Versioning Manager - available on the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt; - is a tool that helps managing Appian applications and database DDL files in a version control system. Given an Appian application ZIP file, the Automated Versioning Manager performs the following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;It unzips the application and organizes the artifact XML files in the repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It automates the check-in and checkout operations with the version control system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It generates application packages for import in Appian based on the contents of the repository and a range of changes to include.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal of this tool is to facilitate the adoption and usage of a version control system to perform configuration management of the Appian applications and database DDL files.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/1374.deployment_5F00_automation_5F00_00.png" /&gt;&lt;/div&gt;
&lt;h3 id="features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Version Control integration (Git, SVN)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supports Appian applications and patches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate import package from hash ranges&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Folder Listener to add contents to Version Control&lt;/li&gt;
&lt;li&gt;Supports GitHub, GitLab, and BitBucket for Version Control&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage"&gt;Usage&lt;/h3&gt;
&lt;p&gt;The automated versioning tool is a script to be run from the command line or terminal. It contains a wrapper for Windows (version-application.bat) and Linux (version-application.sh) systems. This document will first discuss how to use the tool in general, and then discuss use cases to give concrete examples. All parameters can be passed either on the command line or in the properties file.&lt;/p&gt;
&lt;h3 id="script-execution"&gt;Script Execution&lt;/h3&gt;
&lt;p&gt;To run the script, open a command window and navigate to the directory where the automated versioning scripts are located. They are named version-application.bat or version-application.sh.&lt;/p&gt;
&lt;p&gt;Use the -h or -help parameters to view the help menu within the script. The parameters are described here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Required Parameters (required for all four actions: addContents, buildAllApps, buildSingleApp, buildMultipleApps, and updateLocalRepo)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-action - Selects which action of the script to run. Acceptable values are: addContents, updateLocalRepo, buildAllApps,&amp;nbsp;buildSingleApp, and&amp;nbsp;buildMultipleApps. Each action is detailed in the use cases below.&lt;/li&gt;
&lt;li&gt;-vc_username -The username associated with the version control (Git or SVN) account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-vc_password -Please check the Security Settings of the version control account. If you have 2-factor authentication enabled, the password requires the version control account token. If you do NOT have 2-factor authentication enabled, the password is the one associated with the version control account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for addContents action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-application_path - The path on your filesystem where the application ZIP is located.&lt;/li&gt;
&lt;li&gt;-admin_console_path - The path on your filesystem where the admin console ZIP file is located.&lt;/li&gt;
&lt;li&gt;-ddl_path - List of comma-separated paths for the DDL files to be included in the deployment package.&lt;/li&gt;
&lt;li&gt;-flyway_path&amp;nbsp;- List of comma-separated paths for the directories to execute DB migrations via Flyway.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;. To learn how&amp;nbsp;the Automated Import Manager&amp;nbsp;uses Flyway, refer to &lt;a href="#Features2"&gt;AIM Features&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-ddl_ds - List of comma-separated datasources associated with the provided DDL files. Must provide the same number of entries as number of DDL files specified with the -ddl_path option or number of directories specified with the -flyway_path option. &lt;strong&gt;NOTE: the order of the specified datasource names must match the order of the script paths specified.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-uuid - The UUID of the application to which the contents of the application should be added. This option is only used if deploying a patch application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- The&amp;nbsp;name of the application to which the contents of the application should be added. This option is only used if deploying a&amp;nbsp;patch&amp;nbsp;application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-commit_message - The message that will be associated with the commit. If not included, a default commit message Committed by @username is provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildAllApps&amp;nbsp;action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-start_hash - Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit. &lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash - End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildSingleApp action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid - The UUID of the application you want to build.&lt;/li&gt;
&lt;li&gt;-application_name - The name of the application you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildMultipleApps action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid&amp;nbsp;- Comma separated list of UUIDs of the applications you want to build.&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- Comma separated list of names of the applications that you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update&amp;nbsp;- Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for updateLocalRepo action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are no additional options (other than required options) for updateLocalRepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Additional Parameters&lt;/strong&gt; - These parameters are REQUIRED, and may be specified here or in the properties file (described in the following section). If they are specified in both locations, the parameters specified in the command line take precedence.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-version_control_type - The version control type used, either GIT or SVN.&lt;/li&gt;
&lt;li&gt;-local_repo_path - The path on the filesystem where the local repository is located. All files on the remote repository are cloned to this path. Example: C:\\MyFiles\\ChangeManagementRepo. &lt;strong&gt;NOTE: if using Windows, be sure to include double forward slashes (as seen in the example) for path separation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-appian_objects_repo_path - Path to the folder containing the Appian objects in the repository. This path is relative to the path of the local repository. If not specified, the Appian objects are checked out to and committed from the root of the local repository path.&lt;/li&gt;
&lt;li&gt;-repo_url - The URL that defines the remote repository. Example: https://github.com/git-username/project-name.git, svn+ssh://svn.code.sf.net/p/project-name/code&lt;/li&gt;
&lt;li&gt;-package_path - &lt;em&gt;For buildAllApps,&amp;nbsp;&lt;em&gt;buildSingleApp, and&amp;nbsp;&lt;em&gt;&lt;em&gt;buildMultipleApps&lt;/em&gt;&lt;/em&gt;&amp;nbsp;&lt;/em&gt;only.&lt;/em&gt; The path on the filesystem where packages are generated. Must include filename of package.&lt;/li&gt;
&lt;li&gt;-branch_name - Branch to check out and use (if not master)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="configuring-using-the-properties-file"&gt;Configuring using the Properties File&lt;/h3&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the configuration file version-manager.properties. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;In case an option is specified both on the command line and in the properties file, the command line value takes precedence and is used.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false &amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;p&gt;If used, the property&amp;nbsp;&lt;code&gt;appianObjectRepoPath&lt;/code&gt;&amp;nbsp;must not reference a file path more than one level below the root directory of the repository. Ex.&amp;nbsp;appianObjectRepoPath =&amp;nbsp;/appian/objects&amp;nbsp;is an acceptable configuration but&amp;nbsp;appianObjectRepoPath = /appian/folder/objects is not valid.&lt;/p&gt;
&lt;h3 id="use-cases"&gt;Use Cases&lt;/h3&gt;
&lt;h4 id="1-new-developer-joins-team-updatelocalrepo"&gt;#1: New developer joins team (updateLocalRepo)&lt;/h4&gt;
&lt;p&gt;In this use case, a new developer has joined the team and wants to get a copy of all the work completed so far. The developer:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Update version-manager.properties with the appropriate fields. See the &lt;a href="#Script_Setup1"&gt;Script Setup&lt;/a&gt; section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;updateLocalRepo&lt;/strong&gt; as the action flag. The developer must provide the username and password for authenticating against their version control system (-vc_username, -vc_password).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action updateLocalRepo -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, the developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;h4 id="2-developer-adds-artifacts-to-the-repository-addcontents"&gt;#2: Developer adds artifacts to the repository (addContents)&lt;/h4&gt;
&lt;p&gt;In this use case, the developer on a team has been working in the development environment and has changes he wishes to add to the repository. The changes may be a new application or a patch to an existing application. Note: the repository serves as a record of changes, and can be thought of as an additional Appian environment. The steps involved are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the Appian development environment, create an application (or a patch) that contains the changed objects.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Export those changes and download the application ZIP file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;addContents&lt;/strong&gt; as the action flag. The developer must provide the path of the ZIP file they exported (-application_path) from Appian in step 2. They must also provide the username and password for authenticating their version control system (-vc_username, -vc_password). &lt;strong&gt;NOTE: these are NOT Appian credentials.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Optional: if the application specified for -application_path is a patch, update the -uuid option to specify the parent application&amp;rsquo;s uuid. &lt;em&gt;The script will exit with error if a patch application ZIP is provided but no uuid is passed in.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Optional: if DDL scripts have been modified, specify the path(s) and their associated JDBC datasource names. NOTE: The same number of DDL scripts and datasource names must be entered into the script, even if the datasource is the same for all scripts. For example: the developer wishes to add two ddl scripts located at C:\DDLs\script1.sql and C:\DDLs\script2.sql. They do so by setting the -ddl_path option as C:\DDLs\script1.sql,C:\DDLs\script2.sql If both scripts are to be executed on jdbc/AppianDS, they must set the -ddl_ds option as jdbc/AppianDS,jdbc/AppianDS. Note that the datasource name is passed in &lt;strong&gt;&lt;em&gt;twice&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: include a custom commit message using the -commit_message option&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="caution"&gt;WARNING: It is HIGHLY recommended that DDL scripts are developed INCREMENTALLY. That is, do not modify existing DDL scripts - instead, create new scripts that only contain the commands the designer wishes to execute.This is because if the designer updates an existing DDL script, all lines in the script will be executed. This can lead to data integrity issues if not managed properly. PLEASE EXERCISE CAUTION WHEN MODIFYING EXISTING DDL SCRIPTS. Example: if the designer modifies a script that contains commands to drop and recreate a table, the script will drop and recreate the table even if the designer did not modify that section.&lt;/div&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action addContents -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -application_path &amp;quot;C:\App.zip&amp;quot; -ddl_ds jdbc/AppianAnywhere -ddl_path “C:\script1.sql” -commit_message “Adding account executive record”&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When the script is executed, three things occur:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The application ZIP is unzipped and placed into the local repository, and the DDL files are placed into a ddl_files folder within the local repository. If the -uuid option is selected, the appropriate application xml file is updated.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The changes are committed (and pushed, if using Git) to the remote repository.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When the package is imported into Appian, all lines within script1.sql will be executed and contents within the application ZIP are imported.&lt;/p&gt;
&lt;p&gt;Using Folder Listener:&lt;/p&gt;
&lt;p&gt;Alternatively, instead of running the script, the developer can execute&amp;nbsp;avm-folder-listener-&amp;lt;os&amp;gt;&amp;nbsp;in the&amp;nbsp;folder-listener&amp;nbsp;directory. The following command prompt will appear:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x960/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png" /&gt;&lt;/div&gt;
&lt;p&gt;The developer will provide the directory that the application or patch ZIPs will be dropped into as well as the directory of the automated versioning manager tool. Otherwise, the default directories will be used.&lt;/p&gt;
&lt;p&gt;Once setup, the developer can drag the desired application ZIP into the specified directory and the application ZIP will be versioned in their GIT repository. This is assuming that all necessary fields have already been configured in the file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;p&gt;If the developer is supplying a patch ZIP, the console will prompt the developer for the associated application uuid or name. Once supplied, the patch will be deployed to the specified environment in the&amp;nbsp;file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;h4 id="3-build-master-generates-new-rc-deployment-package-buildpackage"&gt;#3: Build master generates new RC deployment package (buildAllApps)&lt;/h4&gt;
&lt;p&gt;In this use case, all additions made by the team have been incorporated into the remote repository and have gone through sufficient testing. The build master is now ready to promote a new package to the higher environment. The new package should include all additions and changes since the last deployment. The build master will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;(If not done previously) Update version-manager.properties with the appropriate fields. See the Script Setup section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;buildAllApps&lt;/strong&gt; as the action flag. The build master must provide the username and password for authenticating against their version control system (-vc_username, -vc_password). To get a specific set of changes, input a value for the -start_hash option and the -end_hash option. This will generate the package with all new and changed files between the two hash options.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;NOTE: the package will &lt;strong&gt;NOT&lt;/strong&gt; include the changes introduced in the start hash, but &lt;strong&gt;WILL&lt;/strong&gt; include changes introduced in the end hash.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Command:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action buildAllApps -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -start_hash ac37459 -end_hash 6e83b42&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, it generates a package at the location specified by the packagePath field in version-manager.properties.&lt;/p&gt;
&lt;p&gt;Finally, the build master will import the RC package into the higher environment using the Automated Import tool as described later in this play.&lt;/p&gt;
&lt;h3 id="_using_subversion_as_version_control_system"&gt;Using Subversion as Version Control System&lt;/h3&gt;
&lt;p&gt;To allow the Automated Versioning Manager to perform the checkout and commit operations with Subversion, the tool assumes the common Subversion project structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;trunk&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;branches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tags&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The location of the repository root must be provided by the property repoURL.&lt;/p&gt;
&lt;p&gt;Example: The following version-manager.properties configuration checks out the release 1 branch from the repository located at &lt;a href="https://svn.code.sf.net/p/deploymentautomationexample/code"&gt;https://svn.code.sf.net/p/deploymentautomationexample/code&lt;/a&gt; and commit all changes to the branch &amp;quot;release1&amp;quot;. Optionally, you may specify each of these parameters as command line arguments instead of using the version-manager.properties file.&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=SVN

repoUrl=https://svn.code.sf.net/p/deploymentautomationexample/code

branchName=branches/release1&lt;/pre&gt;&lt;/pre&gt;
&lt;h3 id="_using_git_as_version_control_system"&gt;Using Git as Version Control System&lt;/h3&gt;
&lt;p&gt;To use Git with the Automated Versioning Manager, properties may be specified on the command line or version-manager.properties should be updated as follows:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=GIT

repoUrl=https://github.com/gituser/testgitrepo.git

branchName=newbranch&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;branchName is an optional field. If the branch does not exist remotely, the tool will automatically create it on the local machine and push it to the remote repository as soon as addContents is executed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: if you are planning to check out a private repository, use the Git SSH URL rather than the HTTPS URL.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="automated_import_manager"&gt;Automated Import Manager&lt;/h2&gt;
&lt;h3 id="_summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;With the Cloud-approved Appian &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager plug-in&lt;/a&gt; and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager client&lt;/a&gt;&amp;nbsp;available on the AppMarket, users can automatically deploy applications and patch contents (either applications from Appian OR packages generated from the &lt;a href="#Automated_Versioning_Manager"&gt;Automated Versioning Manager&lt;/a&gt;) to any environment. Users will have three options for deployment: the tool can either deploy from the tool&amp;rsquo;s user interface in one click, trigger the deployment from an external CI tool, or deploy from the command line.&lt;/p&gt;
&lt;p&gt;The Automated Import Manager automates the process of inspecting the application, executing DDL scripts, &lt;strong&gt;updating CDTs, republishing the appropriate datastores&lt;/strong&gt;, and importing the application.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4011.deployment_5F00_automation_5F00_02.png" /&gt;&lt;/div&gt;
&lt;h3 id="features_"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect Application:&lt;/strong&gt; This tool will automatically mimic the &amp;quot;Inspect&amp;quot; functionality that exists within Appian&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Validating Application Content:&lt;/strong&gt; In addition to inspecting the application, the tool will ensure all CDT dependents are included to avoid objects pointing to older versions.&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute DDL Scripts:&lt;/strong&gt; DDL scripts can be uploaded and automatically executed. NOTE: For Microsoft SQL Server, only Transact-SQL statements are valid.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute Migrations with Flyway:&amp;nbsp;&lt;/strong&gt;Flyway is a tool used for managing database migrations. It makes it easier to track SQL script versions and not re-execute SQL scripts that have already been run. If a Flyway&amp;nbsp;directory is provided, the Automated Import Manager will automatically&amp;nbsp;execute migrations against the corresponding datasource.&amp;nbsp;Learn more about Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/getstarted/how"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Update CDTs:&lt;/strong&gt; Users are no longer required to delete CDTs before updating them, this tool will perform this step automatically&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import Application and admin console configuration:&lt;/strong&gt; Automatically import an application with an optional customization file&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Republish Datastores:&lt;/strong&gt; After application import, datastores will be automatically published or republished&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add Patches:&lt;/strong&gt; Automatically add patch contents to a specified existing application&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage_"&gt;Usage&lt;/h3&gt;
&lt;h3 id="1-deploy-from-the-web-browser-ui"&gt;&amp;nbsp;Deploy from the Web Browser UI&lt;/h3&gt;
&lt;p&gt;The tool collects usage metrics by default. To opt-out of metrics collection, check the below option on the Web Browser UI:&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1600x480/__key/communityserver-wikis-components-files/00-00-00-00-46/0702.pastedimage1539370754100v1.png" /&gt;&lt;/div&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/796x1133/__key/communityserver-wikis-components-files/00-00-00-00-46/4186.Screen-Shot-2018_2D00_08_2D00_30-at-3.22.31-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Log into Appian as a system administrator&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the Deployment Automation UI available at the URL: &amp;lt;appian&amp;gt;/suite/plugins/servlet/deploymentautomation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Upload the patch or application you wish to import.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If this application is a patch, select the parent application to which patch contents should be added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the new application requires changes to the database schema (i.e. new or updated CDTs) you must choose one of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upload the corresponding DDL script(s) that accurately reflect these additions and/or updates.&lt;/li&gt;
&lt;li&gt;Set the datastore to &amp;quot;Automatically update database schema&amp;quot; and set &amp;quot;Allow Database Schema Changes Through Data Stores&amp;quot; in the Deployment section of the Appian Administration Console&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click on the button &amp;quot;Start Deployment&amp;quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;During the deployment, the screen is automatically refreshed every 5 seconds with the latest status of the deployment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the deployment is complete, the browser will update with a status page.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8228.deployment_5F00_automation_5F00_04.png" /&gt;&lt;/div&gt;
&lt;h3 id="2-deploy-from-the-command-line-script"&gt;&amp;nbsp;Deploy from the Command Line Script&lt;/h3&gt;
&lt;p&gt;The command line script - the client - can be downloaded from the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false&amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x2000/__key/communityserver-wikis-components-files/00-00-00-00-46/7723.Screen-Shot-2018_2D00_08_2D00_30-at-3.29.54-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open a command window in the same folder to which the client script and supporting libraries were unzipped.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the help guide pictured above, run the proper command to automatically import the application. Use -h or -help to view this menu at any time.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;-ac_customization_path: Indicates the path to the customization file to use when deploying the admin console&amp;nbsp;package or the application package.&lt;/li&gt;
&lt;li&gt;-admin_console_path: Indicates the path to the admin console file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-application_path: Indicates the path to the application file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-ddl_ds: Optional, use only if providing DDL scripts. The name of the datasource to use with the corresponding DDL script. Use a comma separator to enter multiple datasources.&lt;/li&gt;
&lt;li&gt;-ddl_path: Optional, use only if providing DDL scripts. Indicates the path to the DDL scripts to execute. Use a comma separator to enter multiple DDL script paths. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-flyway_path: Optional, use only if providing directories to execute DB migrations via Flyway. Use a comma separator to enter multiple directory paths. NOTE: Use quotations around the entry.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-force_import: A boolean flag which specifies whether or not the import ignores impact analysis results.If true, the import will occur even if objects with CDT references are missing&lt;/li&gt;
&lt;li&gt;-import_customization_path: Indicates the path to the import customization file to use&lt;/li&gt;
&lt;li&gt;-inspect_only: Optional, use to run an inspection of the package. Indicates the package should not be deployed but inspected only.&lt;/li&gt;
&lt;li&gt;-password: Password of the Appian user account&lt;/li&gt;
&lt;li&gt;-proxy_port: Optional, port of the proxy server to use to connect to Appian. This parameter is only used if the parameter -proxy_url is defined. The default value is 8080.&lt;/li&gt;
&lt;li&gt;-proxy_url: Optional, URL of the proxy to use to connect to Appian.&lt;/li&gt;
&lt;li&gt;-url: URL of the environment, of the format &lt;a href="http://example.appian.com/suite"&gt;https://example.appian.com/suite&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-username: Username of the Appian user account to use for deployment&lt;/li&gt;
&lt;li&gt;-uuid: UUID of the application to which patch contents will be added&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy the application by typing the command deploy-application.bat and including the relevant parameters. Your command will look something like the one pictured below.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;deploy-application.bat -application_path &amp;quot;PATH TO APPLICATION ZIP&amp;quot; -username SERVICE_ACCOUNT_USERNAME -password SERVICE_ACCOUNT_PASSWORD -url APPIAN_URL -ddl_path &amp;quot;PATH TO DLL 1, PATH TO DLL 2&amp;quot; -ddl_ds jdbc/Appian1,jdbc/Appian2&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the &lt;strong&gt;configuration file&amp;nbsp;import-manager.properties&lt;/strong&gt;. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;During the deployment, the prompt is automatically refreshed every 5 seconds with the latest status of the deployment. When the deployment is complete, a status response (like the one pictured below) will display.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6746.deployment_5F00_automation_5F00_06.png" /&gt;&lt;/div&gt;
&lt;h3 id="3-deploy-from-an-external-continuous-integration-tool"&gt;Deploy from an External Continuous Integration tool&lt;/h3&gt;
&lt;p&gt;Additional Requirement:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An existing external Continuous Integration tool (such as Jenkins or Hudson) that is properly configured&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The steps below provide the high level steps to deploy an application from Jenkins.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new external job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the job to run the import script using the guidance in Deployment Option #2 listed above&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute the job&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8132.deployment_5F00_automation_5F00_07.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;When the deployment is complete, check the status page verify that the import was successful.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/5078.deployment_5F00_automation_5F00_08.png" /&gt;&lt;/div&gt;
&lt;h2 id="troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;h3 id="deciphering_script_error_messages"&gt;Deciphering Script Error Messages&lt;/h3&gt;
&lt;h3 id="inspect-failure"&gt;Inspect Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails on inspect, please check the error log and inspect log to determine the root cause of the inspect error. Additionally, please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Inspect_Package.html"&gt;Inspect Package&lt;/a&gt; documentation to determine what common inspect issues may arise.&lt;/p&gt;
&lt;h3 id="package-validation-failure"&gt;Package Validation Failure&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;This feature is only for Appian 7.11 and above.&lt;/strong&gt; If the Automated Import script fails during package validation, this means that objects with certain CDT dependencies are missing. Please check the error message which will include the list of missing required dependencies. Appian recommends to include these dependencies in the application prior to importing.&lt;/p&gt;
&lt;p&gt;In case you want to proceed with deploying the application regardless of missing CDT dependencies, use the flag -f.&lt;/p&gt;
&lt;h3 id="import-failure"&gt;Import Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails during import, it will produce an error log that contains the reason(s) for import failure. Please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Application_Deployment_Guidelines.html#Issues_During_Export_or_Import"&gt;Application Deployment Guidelines&lt;/a&gt; documentation on import issues to determine the root cause of the import failure.&lt;/p&gt;
&lt;h3 id="invalid-credentials"&gt;Invalid Credentials&lt;/h3&gt;
&lt;p&gt;Please ensure that these credentials are associated with an active Appian system administrator account. Basic user credentials cannot be used.&lt;/p&gt;
&lt;h3 id="connection-refused-with-deployment-command-line-script"&gt;Connection Refused With Deployment Command Line Script&lt;/h3&gt;
&lt;p&gt;A &amp;quot;Connection Refused&amp;quot; error could be the result of using the wrong URL when executing the script. The URL provided as a parameter must:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;include the suffix &amp;quot;/suite&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include a port number if not using the port 80 with HTTP or port 443 with HTTPS&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="release_notes"&gt;Release Notes&lt;/h2&gt;
&lt;h3 id="september&amp;nbsp;2021_-_release_2.5.13"&gt;September&amp;nbsp;2021 - Release 2.5.13&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed an issue where setting &amp;quot;appianObjectsRepoPath&amp;quot; prevented a package that included a patches.xml file from being processed successfully&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2021_-_release_2.5.12"&gt;March&amp;nbsp;2021 - Release 2.5.12&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Updated the link to the import log in the ADM servlet after a change was made to the Appian API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed a bug that was preventing Flyway files from being included in metadata.properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september&amp;nbsp;2020_-_release_2.5.11"&gt;September&amp;nbsp;2020 - Release 2.5.11&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Upgraded Flyway version to 6.5.5 for compatibility with MariaDB.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2020_-_release_2.5.10"&gt;August&amp;nbsp;2020 - Release 2.5.10&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added the ability to dynamically generate the Metadata file for the &amp;quot;buildAllApps&amp;quot; action to reflect only the list of database scripts that are included in the package for a given commit range.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li class="li1"&gt;Fixed the interpretation of &amp;quot;appianObjectsRepoPath&amp;quot; on Windows platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="december&amp;nbsp;2019&amp;nbsp;-_release_2.5.9"&gt;December&amp;nbsp;2019&amp;nbsp;- Release 2.5.9&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added DNS proxy support to ADM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AIM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AVM&lt;/li&gt;
&lt;li class="li1"&gt;Added support for special characters in passwords in ADM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="july&amp;nbsp;2019&amp;nbsp;-_release_2.5.8"&gt;July&amp;nbsp;2019&amp;nbsp;- Release 2.5.8&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;Fixed the problem with obtaining TransactionManager and creating DataConfiguration against latest the Appian version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april&amp;nbsp;2019&amp;nbsp;-_release_2.5.7"&gt;April&amp;nbsp;2019&amp;nbsp;- Release 2.5.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added commit message prompt to folder listener&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed Windows issue with pushing file updates to versioning manager&lt;/li&gt;
&lt;li class="li1"&gt;Fixed import patch failure not adding newly created objects issue&lt;/li&gt;
&lt;li class="li1"&gt;Fixed semicolon separator parsing issue&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2019_-_release_2.5.6"&gt;March&amp;nbsp;2019 - Release 2.5.6&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added proxy authentication support for import client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="february&amp;nbsp;2019_-_release_2.5.5"&gt;February&amp;nbsp;2019 - Release 2.5.5&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed DDL paths bug&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2019_-_release_2.5.4"&gt;January&amp;nbsp;2019 - Release 2.5.4&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Improved descriptions of errors encountered during deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed &amp;quot;Connection Refused&amp;quot; bug when running on a Jenkins server&lt;/li&gt;
&lt;li&gt;Fixed &amp;quot;buildSingleApp&amp;quot; AVM bug when specifying an appianObjectsRepoPath&lt;/li&gt;
&lt;li&gt;Fixed rare &amp;quot;hanging&amp;quot; bug in AIM Client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="november&amp;nbsp;2018_-_release_2.5.3"&gt;November&amp;nbsp;2018 - Release 2.5.3&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Created a reset command for Remote Automated Deployment Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Version and Import Metrics Logger Initialized correctly to fix null pointer exception&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october&amp;nbsp;2018_-_release_2.5.2"&gt;October&amp;nbsp;2018 - Release 2.5.2&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li&gt;Folder listener to auto trigger &amp;ldquo;Add Contents&amp;rdquo; action&lt;/li&gt;
&lt;li&gt;Field validation for import and versioning manager properties files&lt;/li&gt;
&lt;li&gt;Usage metrics collection to better understand tool use&lt;/li&gt;
&lt;li&gt;Updated error log messages&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;ADM UI: Handle apostrophes in app name&lt;/li&gt;
&lt;li&gt;ZIP type validation for Automated Import Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="&amp;nbsp;september&amp;nbsp;2018_-_release_2.5.1"&gt;&amp;nbsp;September&amp;nbsp;2018 - Release 2.5.1&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;New buildMultipleApps action&lt;/li&gt;
&lt;li class="li1"&gt;Check version of tools with -v or -version flags&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed ADM SQL errors with non-null statements and forward slash as delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.5.0"&gt;August&amp;nbsp;2018 - Release 2.5.0&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added Flyway DB version control tool to command line and AIM GUI&lt;/li&gt;
&lt;li class="li1"&gt;Allow import of DDL scripts or Flyway scripts without an application zip or patch zip&lt;/li&gt;
&lt;li class="li1"&gt;Added Folder Listener script that will run addContents automatically when a file is dropped into a folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added buildAllApps to list of approved actions&lt;/li&gt;
&lt;li class="li1"&gt;Set inspect_only properly in AIM&lt;/li&gt;
&lt;li class="li1"&gt;Fixed bug where repo would be cloned into a folder with an incorrect name&lt;/li&gt;
&lt;li class="li1"&gt;Passed in correct authentication token for buildAllApps and buildSingleApp&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.4.7"&gt;August&amp;nbsp;2018 - Release 2.4.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added &amp;quot;buildSingleApp&amp;quot; action to extract one app from multi app repo&lt;/li&gt;
&lt;li class="li1"&gt;Renamed &amp;quot;buildPackage&amp;quot; action to &amp;quot;buildAllApps&amp;quot; to better clarify the functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed miscellaneous issues with parsing SQL in DDL file&lt;/li&gt;
&lt;li class="li1"&gt;Mark/reset issue with large customization files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june&amp;nbsp;2018_-_release_2.4.6"&gt;June&amp;nbsp;2018 - Release 2.4.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added an import-manager.properties file to set default values for importing applications&lt;/li&gt;
&lt;li&gt;Automated versioning manager supports adding a package with multiple patches&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Application version UUID is updated when adding patches to a version control&lt;/li&gt;
&lt;li&gt;Import no longer fails when SQL in DDL file contains a &amp;quot;;&amp;quot;, &amp;quot;&amp;ndash;&amp;quot; or &amp;quot;/**/&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2018_-_release_2.4.5"&gt;March 2018 - Release 2.4.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add support for proxy configuration in the deployment client script with parameters &amp;quot;proxy_port&amp;quot; and &amp;quot;proxy_url&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2018_-_release_2.4.4"&gt;January&amp;nbsp;2018 - Release 2.4.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2018_-_release_2.4.3"&gt;January 2018 - Release 2.4.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.4&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2017_-_release_2.4.2"&gt;September 2017 - Release 2.4.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.3&lt;/li&gt;
&lt;li&gt;Better handling of end of line characters in the SQL scripts&lt;/li&gt;
&lt;li&gt;Support for customization file when deploying an application package&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2017_-_release_2.4.1"&gt;June 2017 - Release 2.4.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.2&lt;/li&gt;
&lt;li&gt;Fix defect preventing to execute DB scripts as part of a deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2017_-_release_2.4.0"&gt;January 2017 - Release 2.4.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.1&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october_2016_-_release_2.3"&gt;October 2016 - Release 2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 16.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.9"&gt;September 2016 - Release 2.2.9&lt;/h3&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Successfully deploy application packages containing new Datastore entities and new dependents on these entities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.8"&gt;September 2016 - Release 2.2.8&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with missing artifacts in package when using START_HASH and END_HASH.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.7"&gt;August 2016 - Release 2.2.7&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing updated Documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.6"&gt;August 2016 - Release 2.2.6&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New parameter no_update to build a package from the local repository without first performing a checkout&lt;/li&gt;
&lt;li&gt;New integrity control when checking in applications and patches&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.5"&gt;August 2016 - Release 2.2.5&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing new CDTs and updated CDTs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.4"&gt;June 2016 - Release 2.2.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.3"&gt;June 2016 - Release 2.2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Include the source code in all modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.2"&gt;June 2016 - Release 2.2.2&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new parameter appian_objects_repo_path to specify where the Appian artifacts are located in the repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="may_2016_-_release_2.2.0"&gt;May 2016 - Release 2.2.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for admin console packages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed update-database-schema to support native product capability of automatic database updates via datastore and administration console.&lt;/li&gt;
&lt;li&gt;Updated Web Browser UI style&lt;/li&gt;
&lt;li&gt;Removed option for &amp;quot;Automatically update the database schema when publishing the data stores&amp;quot; from the Web Browser UI&lt;/li&gt;
&lt;li&gt;Added support for admin console deployments&lt;/li&gt;
&lt;li&gt;Added support in command line for inspect_only parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2016_-_release_2.1.0"&gt;March 2016 - Release 2.1.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for input flexibility. Now, the command line for versioning manager supports all possible parameters.&lt;/li&gt;
&lt;li&gt;Allowed tags as inputs to start hash and end hash.&lt;/li&gt;
&lt;li&gt;Added inputs of the following predefined keywords: FIRST_COMMIT (which maps to first commit ever made) and LAST_COMMIT (the previous commit). NOTE: this is only allowed on the start hash input.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for 16.1.&lt;/li&gt;
&lt;li&gt;Added action for &amp;quot;Inspect Only&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment Automation</title><link>https://community.appian.com/success/w/guide/3328/deployment-automation/revision/6</link><pubDate>Thu, 26 Oct 2023 18:17:11 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43c6339b-3b7e-4b44-ba4b-4a8c46753052</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3328/deployment-automation#comments</comments><description>Revision 6 posted to Guide by joel.larin on 10/26/2023 6:17:11 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian provides several DevOps tools to automate the &lt;a href="https://docs.appian.com/suite/help/latest/devops-with-appian.html#deploy" rel="noopener noreferrer" target="_blank"&gt;deployment of Appian applications&lt;/a&gt; such as Compare &amp;amp; Deploy and Deployment APIs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://docs.appian.com/suite/help/latest/Deploy_to_Target_Environments.html#prodlink-external-deployment-apis"&gt;Deployment APIs&lt;/a&gt; offer a set of API&amp;nbsp;endpoints that allow you to inspect and deploy applications, packages, import customization files, plug-ins, and execute database scripts.&amp;nbsp;These APIs allow you to programmatically trigger deployments and integrate your Appian release into an automated pipeline. You can set up your pipeline once and run it the exact same way for all future deployments, saving time and avoiding manual errors. It is recommended to use the Deployment APIs whenever possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The tools described in this play offer a few alternatives to Appian base product features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tightly integrate with a version control system to store and retrieve package files using the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Automated Versioning Manager (AVM)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Programmatically deploy Admin Console settings and applications using the &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) plug-in&lt;/a&gt;&amp;nbsp;and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Table Of Content&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Automated_Versioning_Manager"&gt;Automated Versioning Manager&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Summary1"&gt;Summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Features1"&gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Usage1"&gt;Usage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Script_Execution1"&gt;Script Execution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Script_Setup1"&gt;Using the Properties File&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Use_Cases1"&gt;Use Cases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Using_Subversion_as_Version_Control_System"&gt;Using Subversion as Version Control System&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Using_Git_as_Version_Control_System"&gt;Using Git as Version Control System&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Automated_Import_Manager"&gt;Automated Import Manager&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Summary2"&gt;Summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Features2"&gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Usage2"&gt;Usage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Deploy_from_the_Web_Browser_UI"&gt;Deploy from the Web Browser UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Deploy_from_the_Command_Line_Script"&gt;Deploy from the Command Line Script&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Deploy_from_an_External_Continuous_Integration_Tool"&gt;Deploy from an External Continuous Integration Tool&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Troubleshooting"&gt;Troubleshooting&lt;/a&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Release_Notes"&gt;Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="automated_versioning_manager"&gt;Automated Versioning Manager&lt;/h2&gt;
&lt;h3 id="summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;The Automated Versioning Manager - available on the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt; - is a tool that helps managing Appian applications and database DDL files in a version control system. Given an Appian application ZIP file, the Automated Versioning Manager performs the following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;It unzips the application and organizes the artifact XML files in the repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It automates the check-in and checkout operations with the version control system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It generates application packages for import in Appian based on the contents of the repository and a range of changes to include.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal of this tool is to facilitate the adoption and usage of a version control system to perform configuration management of the Appian applications and database DDL files.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/1374.deployment_5F00_automation_5F00_00.png" /&gt;&lt;/div&gt;
&lt;h3 id="features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Version Control integration (Git, SVN)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supports Appian applications and patches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate import package from hash ranges&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Folder Listener to add contents to Version Control&lt;/li&gt;
&lt;li&gt;Supports GitHub, GitLab, and BitBucket for Version Control&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage"&gt;Usage&lt;/h3&gt;
&lt;p&gt;The automated versioning tool is a script to be run from the command line or terminal. It contains a wrapper for Windows (version-application.bat) and Linux (version-application.sh) systems. This document will first discuss how to use the tool in general, and then discuss use cases to give concrete examples. All parameters can be passed either on the command line or in the properties file.&lt;/p&gt;
&lt;h3 id="script-execution"&gt;Script Execution&lt;/h3&gt;
&lt;p&gt;To run the script, open a command window and navigate to the directory where the automated versioning scripts are located. They are named version-application.bat or version-application.sh.&lt;/p&gt;
&lt;p&gt;Use the -h or -help parameters to view the help menu within the script. The parameters are described here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Required Parameters (required for all four actions: addContents, buildAllApps, buildSingleApp, buildMultipleApps, and updateLocalRepo)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-action - Selects which action of the script to run. Acceptable values are: addContents, updateLocalRepo, buildAllApps,&amp;nbsp;buildSingleApp, and&amp;nbsp;buildMultipleApps. Each action is detailed in the use cases below.&lt;/li&gt;
&lt;li&gt;-vc_username -The username associated with the version control (Git or SVN) account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-vc_password -Please check the Security Settings of the version control account. If you have 2-factor authentication enabled, the password requires the version control account token. If you do NOT have 2-factor authentication enabled, the password is the one associated with the version control account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for addContents action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-application_path - The path on your filesystem where the application ZIP is located.&lt;/li&gt;
&lt;li&gt;-admin_console_path - The path on your filesystem where the admin console ZIP file is located.&lt;/li&gt;
&lt;li&gt;-ddl_path - List of comma-separated paths for the DDL files to be included in the deployment package.&lt;/li&gt;
&lt;li&gt;-flyway_path&amp;nbsp;- List of comma-separated paths for the directories to execute DB migrations via Flyway.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;. To learn how&amp;nbsp;the Automated Import Manager&amp;nbsp;uses Flyway, refer to &lt;a href="#Features2"&gt;AIM Features&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-ddl_ds - List of comma-separated datasources associated with the provided DDL files. Must provide the same number of entries as number of DDL files specified with the -ddl_path option or number of directories specified with the -flyway_path option. &lt;strong&gt;NOTE: the order of the specified datasource names must match the order of the script paths specified.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-uuid - The UUID of the application to which the contents of the application should be added. This option is only used if deploying a patch application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- The&amp;nbsp;name of the application to which the contents of the application should be added. This option is only used if deploying a&amp;nbsp;patch&amp;nbsp;application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-commit_message - The message that will be associated with the commit. If not included, a default commit message Committed by @username is provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildAllApps&amp;nbsp;action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-start_hash - Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit. &lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash - End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildSingleApp action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid - The UUID of the application you want to build.&lt;/li&gt;
&lt;li&gt;-application_name - The name of the application you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildMultipleApps action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid&amp;nbsp;- Comma separated list of UUIDs of the applications you want to build.&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- Comma separated list of names of the applications that you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update&amp;nbsp;- Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for updateLocalRepo action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are no additional options (other than required options) for updateLocalRepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Additional Parameters&lt;/strong&gt; - These parameters are REQUIRED, and may be specified here or in the properties file (described in the following section). If they are specified in both locations, the parameters specified in the command line take precedence.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-version_control_type - The version control type used, either GIT or SVN.&lt;/li&gt;
&lt;li&gt;-local_repo_path - The path on the filesystem where the local repository is located. All files on the remote repository are cloned to this path. Example: C:\\MyFiles\\ChangeManagementRepo. &lt;strong&gt;NOTE: if using Windows, be sure to include double forward slashes (as seen in the example) for path separation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-appian_objects_repo_path - Path to the folder containing the Appian objects in the repository. This path is relative to the path of the local repository. If not specified, the Appian objects are checked out to and committed from the root of the local repository path.&lt;/li&gt;
&lt;li&gt;-repo_url - The URL that defines the remote repository. Example: https://github.com/git-username/project-name.git, svn+ssh://svn.code.sf.net/p/project-name/code&lt;/li&gt;
&lt;li&gt;-package_path - &lt;em&gt;For buildAllApps,&amp;nbsp;&lt;em&gt;buildSingleApp, and&amp;nbsp;&lt;em&gt;&lt;em&gt;buildMultipleApps&lt;/em&gt;&lt;/em&gt;&amp;nbsp;&lt;/em&gt;only.&lt;/em&gt; The path on the filesystem where packages are generated. Must include filename of package.&lt;/li&gt;
&lt;li&gt;-branch_name - Branch to check out and use (if not master)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="configuring-using-the-properties-file"&gt;Configuring using the Properties File&lt;/h3&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the configuration file version-manager.properties. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;In case an option is specified both on the command line and in the properties file, the command line value takes precedence and is used.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false &amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;p&gt;If used, the property&amp;nbsp;&lt;code&gt;appianObjectRepoPath&lt;/code&gt;&amp;nbsp;must not reference a file path more than one level below the root directory of the repository. Ex.&amp;nbsp;appianObjectRepoPath =&amp;nbsp;/appian/objects&amp;nbsp;is an acceptable configuration but&amp;nbsp;appianObjectRepoPath = /appian/folder/objects is not valid.&lt;/p&gt;
&lt;h3 id="use-cases"&gt;Use Cases&lt;/h3&gt;
&lt;h4 id="1-new-developer-joins-team-updatelocalrepo"&gt;#1: New developer joins team (updateLocalRepo)&lt;/h4&gt;
&lt;p&gt;In this use case, a new developer has joined the team and wants to get a copy of all the work completed so far. The developer:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Update version-manager.properties with the appropriate fields. See the &lt;a href="#Script_Setup1"&gt;Script Setup&lt;/a&gt; section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;updateLocalRepo&lt;/strong&gt; as the action flag. The developer must provide the username and password for authenticating against their version control system (-vc_username, -vc_password).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action updateLocalRepo -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, the developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;h4 id="2-developer-adds-artifacts-to-the-repository-addcontents"&gt;#2: Developer adds artifacts to the repository (addContents)&lt;/h4&gt;
&lt;p&gt;In this use case, the developer on a team has been working in the development environment and has changes he wishes to add to the repository. The changes may be a new application or a patch to an existing application. Note: the repository serves as a record of changes, and can be thought of as an additional Appian environment. The steps involved are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the Appian development environment, create an application (or a patch) that contains the changed objects.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Export those changes and download the application ZIP file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;addContents&lt;/strong&gt; as the action flag. The developer must provide the path of the ZIP file they exported (-application_path) from Appian in step 2. They must also provide the username and password for authenticating their version control system (-vc_username, -vc_password). &lt;strong&gt;NOTE: these are NOT Appian credentials.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Optional: if the application specified for -application_path is a patch, update the -uuid option to specify the parent application&amp;rsquo;s uuid. &lt;em&gt;The script will exit with error if a patch application ZIP is provided but no uuid is passed in.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Optional: if DDL scripts have been modified, specify the path(s) and their associated JDBC datasource names. NOTE: The same number of DDL scripts and datasource names must be entered into the script, even if the datasource is the same for all scripts. For example: the developer wishes to add two ddl scripts located at C:\DDLs\script1.sql and C:\DDLs\script2.sql. They do so by setting the -ddl_path option as C:\DDLs\script1.sql,C:\DDLs\script2.sql If both scripts are to be executed on jdbc/AppianDS, they must set the -ddl_ds option as jdbc/AppianDS,jdbc/AppianDS. Note that the datasource name is passed in &lt;strong&gt;&lt;em&gt;twice&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: include a custom commit message using the -commit_message option&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="caution"&gt;WARNING: It is HIGHLY recommended that DDL scripts are developed INCREMENTALLY. That is, do not modify existing DDL scripts - instead, create new scripts that only contain the commands the designer wishes to execute.This is because if the designer updates an existing DDL script, all lines in the script will be executed. This can lead to data integrity issues if not managed properly. PLEASE EXERCISE CAUTION WHEN MODIFYING EXISTING DDL SCRIPTS. Example: if the designer modifies a script that contains commands to drop and recreate a table, the script will drop and recreate the table even if the designer did not modify that section.&lt;/div&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action addContents -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -application_path &amp;quot;C:\App.zip&amp;quot; -ddl_ds jdbc/AppianAnywhere -ddl_path “C:\script1.sql” -commit_message “Adding account executive record”&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When the script is executed, three things occur:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The application ZIP is unzipped and placed into the local repository, and the DDL files are placed into a ddl_files folder within the local repository. If the -uuid option is selected, the appropriate application xml file is updated.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The changes are committed (and pushed, if using Git) to the remote repository.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When the package is imported into Appian, all lines within script1.sql will be executed and contents within the application ZIP are imported.&lt;/p&gt;
&lt;p&gt;Using Folder Listener:&lt;/p&gt;
&lt;p&gt;Alternatively, instead of running the script, the developer can execute&amp;nbsp;avm-folder-listener-&amp;lt;os&amp;gt;&amp;nbsp;in the&amp;nbsp;folder-listener&amp;nbsp;directory. The following command prompt will appear:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x960/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png" /&gt;&lt;/div&gt;
&lt;p&gt;The developer will provide the directory that the application or patch ZIPs will be dropped into as well as the directory of the automated versioning manager tool. Otherwise, the default directories will be used.&lt;/p&gt;
&lt;p&gt;Once setup, the developer can drag the desired application ZIP into the specified directory and the application ZIP will be versioned in their GIT repository. This is assuming that all necessary fields have already been configured in the file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;p&gt;If the developer is supplying a patch ZIP, the console will prompt the developer for the associated application uuid or name. Once supplied, the patch will be deployed to the specified environment in the&amp;nbsp;file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;h4 id="3-build-master-generates-new-rc-deployment-package-buildpackage"&gt;#3: Build master generates new RC deployment package (buildAllApps)&lt;/h4&gt;
&lt;p&gt;In this use case, all additions made by the team have been incorporated into the remote repository and have gone through sufficient testing. The build master is now ready to promote a new package to the higher environment. The new package should include all additions and changes since the last deployment. The build master will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;(If not done previously) Update version-manager.properties with the appropriate fields. See the Script Setup section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;buildAllApps&lt;/strong&gt; as the action flag. The build master must provide the username and password for authenticating against their version control system (-vc_username, -vc_password). To get a specific set of changes, input a value for the -start_hash option and the -end_hash option. This will generate the package with all new and changed files between the two hash options.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;NOTE: the package will &lt;strong&gt;NOT&lt;/strong&gt; include the changes introduced in the start hash, but &lt;strong&gt;WILL&lt;/strong&gt; include changes introduced in the end hash.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Command:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action buildAllApps -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -start_hash ac37459 -end_hash 6e83b42&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, it generates a package at the location specified by the packagePath field in version-manager.properties.&lt;/p&gt;
&lt;p&gt;Finally, the build master will import the RC package into the higher environment using the Automated Import tool as described later in this play.&lt;/p&gt;
&lt;h3 id="_using_subversion_as_version_control_system"&gt;Using Subversion as Version Control System&lt;/h3&gt;
&lt;p&gt;To allow the Automated Versioning Manager to perform the checkout and commit operations with Subversion, the tool assumes the common Subversion project structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;trunk&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;branches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tags&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The location of the repository root must be provided by the property repoURL.&lt;/p&gt;
&lt;p&gt;Example: The following version-manager.properties configuration checks out the release 1 branch from the repository located at &lt;a href="https://svn.code.sf.net/p/deploymentautomationexample/code"&gt;https://svn.code.sf.net/p/deploymentautomationexample/code&lt;/a&gt; and commit all changes to the branch &amp;quot;release1&amp;quot;. Optionally, you may specify each of these parameters as command line arguments instead of using the version-manager.properties file.&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=SVN

repoUrl=https://svn.code.sf.net/p/deploymentautomationexample/code

branchName=branches/release1&lt;/pre&gt;&lt;/pre&gt;
&lt;h3 id="_using_git_as_version_control_system"&gt;Using Git as Version Control System&lt;/h3&gt;
&lt;p&gt;To use Git with the Automated Versioning Manager, properties may be specified on the command line or version-manager.properties should be updated as follows:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=GIT

repoUrl=https://github.com/gituser/testgitrepo.git

branchName=newbranch&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;branchName is an optional field. If the branch does not exist remotely, the tool will automatically create it on the local machine and push it to the remote repository as soon as addContents is executed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: if you are planning to check out a private repository, use the Git SSH URL rather than the HTTPS URL.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="_automated_import_manager"&gt;Automated Import Manager&lt;/h2&gt;
&lt;h3 id="_summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;With the Cloud-approved Appian &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager plug-in&lt;/a&gt; and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager client&lt;/a&gt;&amp;nbsp;available on the AppMarket, users can automatically deploy applications and patch contents (either applications from Appian OR packages generated from the &lt;a href="#Automated_Versioning_Manager"&gt;Automated Versioning Manager&lt;/a&gt;) to any environment. Users will have three options for deployment: the tool can either deploy from the tool&amp;rsquo;s user interface in one click, trigger the deployment from an external CI tool, or deploy from the command line.&lt;/p&gt;
&lt;p&gt;The Automated Import Manager automates the process of inspecting the application, executing DDL scripts, &lt;strong&gt;updating CDTs, republishing the appropriate datastores&lt;/strong&gt;, and importing the application.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4011.deployment_5F00_automation_5F00_02.png" /&gt;&lt;/div&gt;
&lt;h3 id="features_"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect Application:&lt;/strong&gt; This tool will automatically mimic the &amp;quot;Inspect&amp;quot; functionality that exists within Appian&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Validating Application Content:&lt;/strong&gt; In addition to inspecting the application, the tool will ensure all CDT dependents are included to avoid objects pointing to older versions.&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute DDL Scripts:&lt;/strong&gt; DDL scripts can be uploaded and automatically executed. NOTE: For Microsoft SQL Server, only Transact-SQL statements are valid.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute Migrations with Flyway:&amp;nbsp;&lt;/strong&gt;Flyway is a tool used for managing database migrations. It makes it easier to track SQL script versions and not re-execute SQL scripts that have already been run. If a Flyway&amp;nbsp;directory is provided, the Automated Import Manager will automatically&amp;nbsp;execute migrations against the corresponding datasource.&amp;nbsp;Learn more about Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/getstarted/how"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Update CDTs:&lt;/strong&gt; Users are no longer required to delete CDTs before updating them, this tool will perform this step automatically&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import Application and admin console configuration:&lt;/strong&gt; Automatically import an application with an optional customization file&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Republish Datastores:&lt;/strong&gt; After application import, datastores will be automatically published or republished&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add Patches:&lt;/strong&gt; Automatically add patch contents to a specified existing application&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage_"&gt;Usage&lt;/h3&gt;
&lt;h3 id="1-deploy-from-the-web-browser-ui"&gt;&amp;nbsp;Deploy from the Web Browser UI&lt;/h3&gt;
&lt;p&gt;The tool collects usage metrics by default. To opt-out of metrics collection, check the below option on the Web Browser UI:&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1600x480/__key/communityserver-wikis-components-files/00-00-00-00-46/0702.pastedimage1539370754100v1.png" /&gt;&lt;/div&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/796x1133/__key/communityserver-wikis-components-files/00-00-00-00-46/4186.Screen-Shot-2018_2D00_08_2D00_30-at-3.22.31-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Log into Appian as a system administrator&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the Deployment Automation UI available at the URL: &amp;lt;appian&amp;gt;/suite/plugins/servlet/deploymentautomation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Upload the patch or application you wish to import.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If this application is a patch, select the parent application to which patch contents should be added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the new application requires changes to the database schema (i.e. new or updated CDTs) you must choose one of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upload the corresponding DDL script(s) that accurately reflect these additions and/or updates.&lt;/li&gt;
&lt;li&gt;Set the datastore to &amp;quot;Automatically update database schema&amp;quot; and set &amp;quot;Allow Database Schema Changes Through Data Stores&amp;quot; in the Deployment section of the Appian Administration Console&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click on the button &amp;quot;Start Deployment&amp;quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;During the deployment, the screen is automatically refreshed every 5 seconds with the latest status of the deployment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the deployment is complete, the browser will update with a status page.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8228.deployment_5F00_automation_5F00_04.png" /&gt;&lt;/div&gt;
&lt;h3 id="2-deploy-from-the-command-line-script"&gt;&amp;nbsp;Deploy from the Command Line Script&lt;/h3&gt;
&lt;p&gt;The command line script - the client - can be downloaded from the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false&amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x2000/__key/communityserver-wikis-components-files/00-00-00-00-46/7723.Screen-Shot-2018_2D00_08_2D00_30-at-3.29.54-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open a command window in the same folder to which the client script and supporting libraries were unzipped.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the help guide pictured above, run the proper command to automatically import the application. Use -h or -help to view this menu at any time.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;-ac_customization_path: Indicates the path to the customization file to use when deploying the admin console&amp;nbsp;package or the application package.&lt;/li&gt;
&lt;li&gt;-admin_console_path: Indicates the path to the admin console file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-application_path: Indicates the path to the application file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-ddl_ds: Optional, use only if providing DDL scripts. The name of the datasource to use with the corresponding DDL script. Use a comma separator to enter multiple datasources.&lt;/li&gt;
&lt;li&gt;-ddl_path: Optional, use only if providing DDL scripts. Indicates the path to the DDL scripts to execute. Use a comma separator to enter multiple DDL script paths. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-flyway_path: Optional, use only if providing directories to execute DB migrations via Flyway. Use a comma separator to enter multiple directory paths. NOTE: Use quotations around the entry.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-force_import: A boolean flag which specifies whether or not the import ignores impact analysis results.If true, the import will occur even if objects with CDT references are missing&lt;/li&gt;
&lt;li&gt;-import_customization_path: Indicates the path to the import customization file to use&lt;/li&gt;
&lt;li&gt;-inspect_only: Optional, use to run an inspection of the package. Indicates the package should not be deployed but inspected only.&lt;/li&gt;
&lt;li&gt;-password: Password of the Appian user account&lt;/li&gt;
&lt;li&gt;-proxy_port: Optional, port of the proxy server to use to connect to Appian. This parameter is only used if the parameter -proxy_url is defined. The default value is 8080.&lt;/li&gt;
&lt;li&gt;-proxy_url: Optional, URL of the proxy to use to connect to Appian.&lt;/li&gt;
&lt;li&gt;-url: URL of the environment, of the format &lt;a href="http://example.appian.com/suite"&gt;https://example.appian.com/suite&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-username: Username of the Appian user account to use for deployment&lt;/li&gt;
&lt;li&gt;-uuid: UUID of the application to which patch contents will be added&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy the application by typing the command deploy-application.bat and including the relevant parameters. Your command will look something like the one pictured below.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;deploy-application.bat -application_path &amp;quot;PATH TO APPLICATION ZIP&amp;quot; -username SERVICE_ACCOUNT_USERNAME -password SERVICE_ACCOUNT_PASSWORD -url APPIAN_URL -ddl_path &amp;quot;PATH TO DLL 1, PATH TO DLL 2&amp;quot; -ddl_ds jdbc/Appian1,jdbc/Appian2&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the &lt;strong&gt;configuration file&amp;nbsp;import-manager.properties&lt;/strong&gt;. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;During the deployment, the prompt is automatically refreshed every 5 seconds with the latest status of the deployment. When the deployment is complete, a status response (like the one pictured below) will display.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6746.deployment_5F00_automation_5F00_06.png" /&gt;&lt;/div&gt;
&lt;h3 id="3-deploy-from-an-external-continuous-integration-tool"&gt;Deploy from an External Continuous Integration tool&lt;/h3&gt;
&lt;p&gt;Additional Requirement:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An existing external Continuous Integration tool (such as Jenkins or Hudson) that is properly configured&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The steps below provide the high level steps to deploy an application from Jenkins.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new external job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the job to run the import script using the guidance in Deployment Option #2 listed above&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute the job&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8132.deployment_5F00_automation_5F00_07.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;When the deployment is complete, check the status page verify that the import was successful.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/5078.deployment_5F00_automation_5F00_08.png" /&gt;&lt;/div&gt;
&lt;h2 id="_troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;h3 id="deciphering_script_error_messages"&gt;Deciphering Script Error Messages&lt;/h3&gt;
&lt;h3 id="inspect-failure"&gt;Inspect Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails on inspect, please check the error log and inspect log to determine the root cause of the inspect error. Additionally, please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Inspect_Package.html"&gt;Inspect Package&lt;/a&gt; documentation to determine what common inspect issues may arise.&lt;/p&gt;
&lt;h3 id="package-validation-failure"&gt;Package Validation Failure&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;This feature is only for Appian 7.11 and above.&lt;/strong&gt; If the Automated Import script fails during package validation, this means that objects with certain CDT dependencies are missing. Please check the error message which will include the list of missing required dependencies. Appian recommends to include these dependencies in the application prior to importing.&lt;/p&gt;
&lt;p&gt;In case you want to proceed with deploying the application regardless of missing CDT dependencies, use the flag -f.&lt;/p&gt;
&lt;h3 id="import-failure"&gt;Import Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails during import, it will produce an error log that contains the reason(s) for import failure. Please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Application_Deployment_Guidelines.html#Issues_During_Export_or_Import"&gt;Application Deployment Guidelines&lt;/a&gt; documentation on import issues to determine the root cause of the import failure.&lt;/p&gt;
&lt;h3 id="invalid-credentials"&gt;Invalid Credentials&lt;/h3&gt;
&lt;p&gt;Please ensure that these credentials are associated with an active Appian system administrator account. Basic user credentials cannot be used.&lt;/p&gt;
&lt;h3 id="connection-refused-with-deployment-command-line-script"&gt;Connection Refused With Deployment Command Line Script&lt;/h3&gt;
&lt;p&gt;A &amp;quot;Connection Refused&amp;quot; error could be the result of using the wrong URL when executing the script. The URL provided as a parameter must:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;include the suffix &amp;quot;/suite&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include a port number if not using the port 80 with HTTP or port 443 with HTTPS&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="release_notes"&gt;Release Notes&lt;/h2&gt;
&lt;h3 id="september&amp;nbsp;2021_-_release_2.5.13"&gt;September&amp;nbsp;2021 - Release 2.5.13&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed an issue where setting &amp;quot;appianObjectsRepoPath&amp;quot; prevented a package that included a patches.xml file from being processed successfully&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2021_-_release_2.5.12"&gt;March&amp;nbsp;2021 - Release 2.5.12&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Updated the link to the import log in the ADM servlet after a change was made to the Appian API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed a bug that was preventing Flyway files from being included in metadata.properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september&amp;nbsp;2020_-_release_2.5.11"&gt;September&amp;nbsp;2020 - Release 2.5.11&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Upgraded Flyway version to 6.5.5 for compatibility with MariaDB.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2020_-_release_2.5.10"&gt;August&amp;nbsp;2020 - Release 2.5.10&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added the ability to dynamically generate the Metadata file for the &amp;quot;buildAllApps&amp;quot; action to reflect only the list of database scripts that are included in the package for a given commit range.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li class="li1"&gt;Fixed the interpretation of &amp;quot;appianObjectsRepoPath&amp;quot; on Windows platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="december&amp;nbsp;2019&amp;nbsp;-_release_2.5.9"&gt;December&amp;nbsp;2019&amp;nbsp;- Release 2.5.9&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added DNS proxy support to ADM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AIM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AVM&lt;/li&gt;
&lt;li class="li1"&gt;Added support for special characters in passwords in ADM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="july&amp;nbsp;2019&amp;nbsp;-_release_2.5.8"&gt;July&amp;nbsp;2019&amp;nbsp;- Release 2.5.8&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;Fixed the problem with obtaining TransactionManager and creating DataConfiguration against latest the Appian version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april&amp;nbsp;2019&amp;nbsp;-_release_2.5.7"&gt;April&amp;nbsp;2019&amp;nbsp;- Release 2.5.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added commit message prompt to folder listener&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed Windows issue with pushing file updates to versioning manager&lt;/li&gt;
&lt;li class="li1"&gt;Fixed import patch failure not adding newly created objects issue&lt;/li&gt;
&lt;li class="li1"&gt;Fixed semicolon separator parsing issue&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2019_-_release_2.5.6"&gt;March&amp;nbsp;2019 - Release 2.5.6&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added proxy authentication support for import client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="february&amp;nbsp;2019_-_release_2.5.5"&gt;February&amp;nbsp;2019 - Release 2.5.5&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed DDL paths bug&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2019_-_release_2.5.4"&gt;January&amp;nbsp;2019 - Release 2.5.4&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Improved descriptions of errors encountered during deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed &amp;quot;Connection Refused&amp;quot; bug when running on a Jenkins server&lt;/li&gt;
&lt;li&gt;Fixed &amp;quot;buildSingleApp&amp;quot; AVM bug when specifying an appianObjectsRepoPath&lt;/li&gt;
&lt;li&gt;Fixed rare &amp;quot;hanging&amp;quot; bug in AIM Client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="november&amp;nbsp;2018_-_release_2.5.3"&gt;November&amp;nbsp;2018 - Release 2.5.3&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Created a reset command for Remote Automated Deployment Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Version and Import Metrics Logger Initialized correctly to fix null pointer exception&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october&amp;nbsp;2018_-_release_2.5.2"&gt;October&amp;nbsp;2018 - Release 2.5.2&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li&gt;Folder listener to auto trigger &amp;ldquo;Add Contents&amp;rdquo; action&lt;/li&gt;
&lt;li&gt;Field validation for import and versioning manager properties files&lt;/li&gt;
&lt;li&gt;Usage metrics collection to better understand tool use&lt;/li&gt;
&lt;li&gt;Updated error log messages&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;ADM UI: Handle apostrophes in app name&lt;/li&gt;
&lt;li&gt;ZIP type validation for Automated Import Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="&amp;nbsp;september&amp;nbsp;2018_-_release_2.5.1"&gt;&amp;nbsp;September&amp;nbsp;2018 - Release 2.5.1&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;New buildMultipleApps action&lt;/li&gt;
&lt;li class="li1"&gt;Check version of tools with -v or -version flags&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed ADM SQL errors with non-null statements and forward slash as delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.5.0"&gt;August&amp;nbsp;2018 - Release 2.5.0&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added Flyway DB version control tool to command line and AIM GUI&lt;/li&gt;
&lt;li class="li1"&gt;Allow import of DDL scripts or Flyway scripts without an application zip or patch zip&lt;/li&gt;
&lt;li class="li1"&gt;Added Folder Listener script that will run addContents automatically when a file is dropped into a folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added buildAllApps to list of approved actions&lt;/li&gt;
&lt;li class="li1"&gt;Set inspect_only properly in AIM&lt;/li&gt;
&lt;li class="li1"&gt;Fixed bug where repo would be cloned into a folder with an incorrect name&lt;/li&gt;
&lt;li class="li1"&gt;Passed in correct authentication token for buildAllApps and buildSingleApp&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.4.7"&gt;August&amp;nbsp;2018 - Release 2.4.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added &amp;quot;buildSingleApp&amp;quot; action to extract one app from multi app repo&lt;/li&gt;
&lt;li class="li1"&gt;Renamed &amp;quot;buildPackage&amp;quot; action to &amp;quot;buildAllApps&amp;quot; to better clarify the functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed miscellaneous issues with parsing SQL in DDL file&lt;/li&gt;
&lt;li class="li1"&gt;Mark/reset issue with large customization files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june&amp;nbsp;2018_-_release_2.4.6"&gt;June&amp;nbsp;2018 - Release 2.4.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added an import-manager.properties file to set default values for importing applications&lt;/li&gt;
&lt;li&gt;Automated versioning manager supports adding a package with multiple patches&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Application version UUID is updated when adding patches to a version control&lt;/li&gt;
&lt;li&gt;Import no longer fails when SQL in DDL file contains a &amp;quot;;&amp;quot;, &amp;quot;&amp;ndash;&amp;quot; or &amp;quot;/**/&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2018_-_release_2.4.5"&gt;March 2018 - Release 2.4.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add support for proxy configuration in the deployment client script with parameters &amp;quot;proxy_port&amp;quot; and &amp;quot;proxy_url&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2018_-_release_2.4.4"&gt;January&amp;nbsp;2018 - Release 2.4.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2018_-_release_2.4.3"&gt;January 2018 - Release 2.4.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.4&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2017_-_release_2.4.2"&gt;September 2017 - Release 2.4.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.3&lt;/li&gt;
&lt;li&gt;Better handling of end of line characters in the SQL scripts&lt;/li&gt;
&lt;li&gt;Support for customization file when deploying an application package&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2017_-_release_2.4.1"&gt;June 2017 - Release 2.4.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.2&lt;/li&gt;
&lt;li&gt;Fix defect preventing to execute DB scripts as part of a deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2017_-_release_2.4.0"&gt;January 2017 - Release 2.4.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.1&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october_2016_-_release_2.3"&gt;October 2016 - Release 2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 16.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.9"&gt;September 2016 - Release 2.2.9&lt;/h3&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Successfully deploy application packages containing new Datastore entities and new dependents on these entities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.8"&gt;September 2016 - Release 2.2.8&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with missing artifacts in package when using START_HASH and END_HASH.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.7"&gt;August 2016 - Release 2.2.7&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing updated Documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.6"&gt;August 2016 - Release 2.2.6&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New parameter no_update to build a package from the local repository without first performing a checkout&lt;/li&gt;
&lt;li&gt;New integrity control when checking in applications and patches&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.5"&gt;August 2016 - Release 2.2.5&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing new CDTs and updated CDTs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.4"&gt;June 2016 - Release 2.2.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.3"&gt;June 2016 - Release 2.2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Include the source code in all modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.2"&gt;June 2016 - Release 2.2.2&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new parameter appian_objects_repo_path to specify where the Appian artifacts are located in the repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="may_2016_-_release_2.2.0"&gt;May 2016 - Release 2.2.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for admin console packages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed update-database-schema to support native product capability of automatic database updates via datastore and administration console.&lt;/li&gt;
&lt;li&gt;Updated Web Browser UI style&lt;/li&gt;
&lt;li&gt;Removed option for &amp;quot;Automatically update the database schema when publishing the data stores&amp;quot; from the Web Browser UI&lt;/li&gt;
&lt;li&gt;Added support for admin console deployments&lt;/li&gt;
&lt;li&gt;Added support in command line for inspect_only parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2016_-_release_2.1.0"&gt;March 2016 - Release 2.1.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for input flexibility. Now, the command line for versioning manager supports all possible parameters.&lt;/li&gt;
&lt;li&gt;Allowed tags as inputs to start hash and end hash.&lt;/li&gt;
&lt;li&gt;Added inputs of the following predefined keywords: FIRST_COMMIT (which maps to first commit ever made) and LAST_COMMIT (the previous commit). NOTE: this is only allowed on the start hash input.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for 16.1.&lt;/li&gt;
&lt;li&gt;Added action for &amp;quot;Inspect Only&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment Automation</title><link>https://community.appian.com/success/w/guide/3328/deployment-automation/revision/5</link><pubDate>Thu, 26 Oct 2023 18:16:16 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43c6339b-3b7e-4b44-ba4b-4a8c46753052</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3328/deployment-automation#comments</comments><description>Revision 5 posted to Guide by joel.larin on 10/26/2023 6:16:16 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian provides several DevOps tools to automate the &lt;a href="https://docs.appian.com/suite/help/latest/devops-with-appian.html#deploy" rel="noopener noreferrer" target="_blank"&gt;deployment of Appian applications&lt;/a&gt; such as Compare &amp;amp; Deploy and Deployment APIs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://docs.appian.com/suite/help/latest/Deploy_to_Target_Environments.html#prodlink-external-deployment-apis"&gt;Deployment APIs&lt;/a&gt; offer a set of API&amp;nbsp;endpoints that allow you to inspect and deploy applications, packages, import customization files, plug-ins, and execute database scripts.&amp;nbsp;These APIs allow you to programmatically trigger deployments and integrate your Appian release into an automated pipeline. You can set up your pipeline once and run it the exact same way for all future deployments, saving time and avoiding manual errors. It is recommended to use the Deployment APIs whenever possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The tools described in this play offer a few alternatives to Appian base product features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tightly integrate with a version control system to store and retrieve package files using the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Automated Versioning Manager (AVM)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Programmatically deploy Admin Console settings and applications using the &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) plug-in&lt;/a&gt;&amp;nbsp;and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Table Of Content&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Automated_Versioning_Manager"&gt;Automated Versioning Manager&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Summary1"&gt;Summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Features1"&gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Usage1"&gt;Usage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Script_Execution1"&gt;Script Execution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Script_Setup1"&gt;Using the Properties File&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Use_Cases1"&gt;Use Cases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Using_Subversion_as_Version_Control_System"&gt;Using Subversion as Version Control System&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Using_Git_as_Version_Control_System"&gt;Using Git as Version Control System&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Automated_Import_Manager"&gt;Automated Import Manager&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Summary2"&gt;Summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Features2"&gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Usage2"&gt;Usage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Deploy_from_the_Web_Browser_UI"&gt;Deploy from the Web Browser UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Deploy_from_the_Command_Line_Script"&gt;Deploy from the Command Line Script&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Deploy_from_an_External_Continuous_Integration_Tool"&gt;Deploy from an External Continuous Integration Tool&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Troubleshooting"&gt;Troubleshooting&lt;/a&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Release_Notes"&gt;Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="automated_versioning_manager"&gt;Automated Versioning Manager&lt;/h2&gt;
&lt;h3 id="summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;The Automated Versioning Manager - available on the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt; - is a tool that helps managing Appian applications and database DDL files in a version control system. Given an Appian application ZIP file, the Automated Versioning Manager performs the following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;It unzips the application and organizes the artifact XML files in the repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It automates the check-in and checkout operations with the version control system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It generates application packages for import in Appian based on the contents of the repository and a range of changes to include.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal of this tool is to facilitate the adoption and usage of a version control system to perform configuration management of the Appian applications and database DDL files.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/1374.deployment_5F00_automation_5F00_00.png" /&gt;&lt;/div&gt;
&lt;h3 id="features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Version Control integration (Git, SVN)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supports Appian applications and patches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate import package from hash ranges&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Folder Listener to add contents to Version Control&lt;/li&gt;
&lt;li&gt;Supports GitHub, GitLab, and BitBucket for Version Control&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage"&gt;Usage&lt;/h3&gt;
&lt;p&gt;The automated versioning tool is a script to be run from the command line or terminal. It contains a wrapper for Windows (version-application.bat) and Linux (version-application.sh) systems. This document will first discuss how to use the tool in general, and then discuss use cases to give concrete examples. All parameters can be passed either on the command line or in the properties file.&lt;/p&gt;
&lt;h3 id="script-execution"&gt;Script Execution&lt;/h3&gt;
&lt;p&gt;To run the script, open a command window and navigate to the directory where the automated versioning scripts are located. They are named version-application.bat or version-application.sh.&lt;/p&gt;
&lt;p&gt;Use the -h or -help parameters to view the help menu within the script. The parameters are described here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Required Parameters (required for all four actions: addContents, buildAllApps, buildSingleApp, buildMultipleApps, and updateLocalRepo)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-action - Selects which action of the script to run. Acceptable values are: addContents, updateLocalRepo, buildAllApps,&amp;nbsp;buildSingleApp, and&amp;nbsp;buildMultipleApps. Each action is detailed in the use cases below.&lt;/li&gt;
&lt;li&gt;-vc_username -The username associated with the version control (Git or SVN) account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-vc_password -Please check the Security Settings of the version control account. If you have 2-factor authentication enabled, the password requires the version control account token. If you do NOT have 2-factor authentication enabled, the password is the one associated with the version control account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for addContents action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-application_path - The path on your filesystem where the application ZIP is located.&lt;/li&gt;
&lt;li&gt;-admin_console_path - The path on your filesystem where the admin console ZIP file is located.&lt;/li&gt;
&lt;li&gt;-ddl_path - List of comma-separated paths for the DDL files to be included in the deployment package.&lt;/li&gt;
&lt;li&gt;-flyway_path&amp;nbsp;- List of comma-separated paths for the directories to execute DB migrations via Flyway.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;. To learn how&amp;nbsp;the Automated Import Manager&amp;nbsp;uses Flyway, refer to &lt;a href="#Features2"&gt;AIM Features&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-ddl_ds - List of comma-separated datasources associated with the provided DDL files. Must provide the same number of entries as number of DDL files specified with the -ddl_path option or number of directories specified with the -flyway_path option. &lt;strong&gt;NOTE: the order of the specified datasource names must match the order of the script paths specified.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-uuid - The UUID of the application to which the contents of the application should be added. This option is only used if deploying a patch application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- The&amp;nbsp;name of the application to which the contents of the application should be added. This option is only used if deploying a&amp;nbsp;patch&amp;nbsp;application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-commit_message - The message that will be associated with the commit. If not included, a default commit message Committed by @username is provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildAllApps&amp;nbsp;action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-start_hash - Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit. &lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash - End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildSingleApp action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid - The UUID of the application you want to build.&lt;/li&gt;
&lt;li&gt;-application_name - The name of the application you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildMultipleApps action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid&amp;nbsp;- Comma separated list of UUIDs of the applications you want to build.&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- Comma separated list of names of the applications that you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update&amp;nbsp;- Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for updateLocalRepo action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are no additional options (other than required options) for updateLocalRepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Additional Parameters&lt;/strong&gt; - These parameters are REQUIRED, and may be specified here or in the properties file (described in the following section). If they are specified in both locations, the parameters specified in the command line take precedence.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-version_control_type - The version control type used, either GIT or SVN.&lt;/li&gt;
&lt;li&gt;-local_repo_path - The path on the filesystem where the local repository is located. All files on the remote repository are cloned to this path. Example: C:\\MyFiles\\ChangeManagementRepo. &lt;strong&gt;NOTE: if using Windows, be sure to include double forward slashes (as seen in the example) for path separation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-appian_objects_repo_path - Path to the folder containing the Appian objects in the repository. This path is relative to the path of the local repository. If not specified, the Appian objects are checked out to and committed from the root of the local repository path.&lt;/li&gt;
&lt;li&gt;-repo_url - The URL that defines the remote repository. Example: https://github.com/git-username/project-name.git, svn+ssh://svn.code.sf.net/p/project-name/code&lt;/li&gt;
&lt;li&gt;-package_path - &lt;em&gt;For buildAllApps,&amp;nbsp;&lt;em&gt;buildSingleApp, and&amp;nbsp;&lt;em&gt;&lt;em&gt;buildMultipleApps&lt;/em&gt;&lt;/em&gt;&amp;nbsp;&lt;/em&gt;only.&lt;/em&gt; The path on the filesystem where packages are generated. Must include filename of package.&lt;/li&gt;
&lt;li&gt;-branch_name - Branch to check out and use (if not master)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="configuring-using-the-properties-file"&gt;Configuring using the Properties File&lt;/h3&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the configuration file version-manager.properties. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;In case an option is specified both on the command line and in the properties file, the command line value takes precedence and is used.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false &amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;p&gt;If used, the property&amp;nbsp;&lt;code&gt;appianObjectRepoPath&lt;/code&gt;&amp;nbsp;must not reference a file path more than one level below the root directory of the repository. Ex.&amp;nbsp;appianObjectRepoPath =&amp;nbsp;/appian/objects&amp;nbsp;is an acceptable configuration but&amp;nbsp;appianObjectRepoPath = /appian/folder/objects is not valid.&lt;/p&gt;
&lt;h3 id="use-cases"&gt;Use Cases&lt;/h3&gt;
&lt;h4 id="1-new-developer-joins-team-updatelocalrepo"&gt;#1: New developer joins team (updateLocalRepo)&lt;/h4&gt;
&lt;p&gt;In this use case, a new developer has joined the team and wants to get a copy of all the work completed so far. The developer:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Update version-manager.properties with the appropriate fields. See the &lt;a href="#Script_Setup1"&gt;Script Setup&lt;/a&gt; section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;updateLocalRepo&lt;/strong&gt; as the action flag. The developer must provide the username and password for authenticating against their version control system (-vc_username, -vc_password).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action updateLocalRepo -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, the developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;h4 id="2-developer-adds-artifacts-to-the-repository-addcontents"&gt;#2: Developer adds artifacts to the repository (addContents)&lt;/h4&gt;
&lt;p&gt;In this use case, the developer on a team has been working in the development environment and has changes he wishes to add to the repository. The changes may be a new application or a patch to an existing application. Note: the repository serves as a record of changes, and can be thought of as an additional Appian environment. The steps involved are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the Appian development environment, create an application (or a patch) that contains the changed objects.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Export those changes and download the application ZIP file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;addContents&lt;/strong&gt; as the action flag. The developer must provide the path of the ZIP file they exported (-application_path) from Appian in step 2. They must also provide the username and password for authenticating their version control system (-vc_username, -vc_password). &lt;strong&gt;NOTE: these are NOT Appian credentials.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Optional: if the application specified for -application_path is a patch, update the -uuid option to specify the parent application&amp;rsquo;s uuid. &lt;em&gt;The script will exit with error if a patch application ZIP is provided but no uuid is passed in.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Optional: if DDL scripts have been modified, specify the path(s) and their associated JDBC datasource names. NOTE: The same number of DDL scripts and datasource names must be entered into the script, even if the datasource is the same for all scripts. For example: the developer wishes to add two ddl scripts located at C:\DDLs\script1.sql and C:\DDLs\script2.sql. They do so by setting the -ddl_path option as C:\DDLs\script1.sql,C:\DDLs\script2.sql If both scripts are to be executed on jdbc/AppianDS, they must set the -ddl_ds option as jdbc/AppianDS,jdbc/AppianDS. Note that the datasource name is passed in &lt;strong&gt;&lt;em&gt;twice&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: include a custom commit message using the -commit_message option&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="caution"&gt;WARNING: It is HIGHLY recommended that DDL scripts are developed INCREMENTALLY. That is, do not modify existing DDL scripts - instead, create new scripts that only contain the commands the designer wishes to execute.This is because if the designer updates an existing DDL script, all lines in the script will be executed. This can lead to data integrity issues if not managed properly. PLEASE EXERCISE CAUTION WHEN MODIFYING EXISTING DDL SCRIPTS. Example: if the designer modifies a script that contains commands to drop and recreate a table, the script will drop and recreate the table even if the designer did not modify that section.&lt;/div&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action addContents -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -application_path &amp;quot;C:\App.zip&amp;quot; -ddl_ds jdbc/AppianAnywhere -ddl_path “C:\script1.sql” -commit_message “Adding account executive record”&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When the script is executed, three things occur:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The application ZIP is unzipped and placed into the local repository, and the DDL files are placed into a ddl_files folder within the local repository. If the -uuid option is selected, the appropriate application xml file is updated.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The changes are committed (and pushed, if using Git) to the remote repository.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When the package is imported into Appian, all lines within script1.sql will be executed and contents within the application ZIP are imported.&lt;/p&gt;
&lt;p&gt;Using Folder Listener:&lt;/p&gt;
&lt;p&gt;Alternatively, instead of running the script, the developer can execute&amp;nbsp;avm-folder-listener-&amp;lt;os&amp;gt;&amp;nbsp;in the&amp;nbsp;folder-listener&amp;nbsp;directory. The following command prompt will appear:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x960/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png" /&gt;&lt;/div&gt;
&lt;p&gt;The developer will provide the directory that the application or patch ZIPs will be dropped into as well as the directory of the automated versioning manager tool. Otherwise, the default directories will be used.&lt;/p&gt;
&lt;p&gt;Once setup, the developer can drag the desired application ZIP into the specified directory and the application ZIP will be versioned in their GIT repository. This is assuming that all necessary fields have already been configured in the file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;p&gt;If the developer is supplying a patch ZIP, the console will prompt the developer for the associated application uuid or name. Once supplied, the patch will be deployed to the specified environment in the&amp;nbsp;file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;h4 id="3-build-master-generates-new-rc-deployment-package-buildpackage"&gt;#3: Build master generates new RC deployment package (buildAllApps)&lt;/h4&gt;
&lt;p&gt;In this use case, all additions made by the team have been incorporated into the remote repository and have gone through sufficient testing. The build master is now ready to promote a new package to the higher environment. The new package should include all additions and changes since the last deployment. The build master will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;(If not done previously) Update version-manager.properties with the appropriate fields. See the Script Setup section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;buildAllApps&lt;/strong&gt; as the action flag. The build master must provide the username and password for authenticating against their version control system (-vc_username, -vc_password). To get a specific set of changes, input a value for the -start_hash option and the -end_hash option. This will generate the package with all new and changed files between the two hash options.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;NOTE: the package will &lt;strong&gt;NOT&lt;/strong&gt; include the changes introduced in the start hash, but &lt;strong&gt;WILL&lt;/strong&gt; include changes introduced in the end hash.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Command:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action buildAllApps -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -start_hash ac37459 -end_hash 6e83b42&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, it generates a package at the location specified by the packagePath field in version-manager.properties.&lt;/p&gt;
&lt;p&gt;Finally, the build master will import the RC package into the higher environment using the Automated Import tool as described later in this play.&lt;/p&gt;
&lt;h3 id="_using_subversion_as_version_control_system"&gt;Using Subversion as Version Control System&lt;/h3&gt;
&lt;p&gt;To allow the Automated Versioning Manager to perform the checkout and commit operations with Subversion, the tool assumes the common Subversion project structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;trunk&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;branches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tags&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The location of the repository root must be provided by the property repoURL.&lt;/p&gt;
&lt;p&gt;Example: The following version-manager.properties configuration checks out the release 1 branch from the repository located at &lt;a href="https://svn.code.sf.net/p/deploymentautomationexample/code"&gt;https://svn.code.sf.net/p/deploymentautomationexample/code&lt;/a&gt; and commit all changes to the branch &amp;quot;release1&amp;quot;. Optionally, you may specify each of these parameters as command line arguments instead of using the version-manager.properties file.&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=SVN

repoUrl=https://svn.code.sf.net/p/deploymentautomationexample/code

branchName=branches/release1&lt;/pre&gt;&lt;/pre&gt;
&lt;h3 id="_using_git_as_version_control_system"&gt;Using Git as Version Control System&lt;/h3&gt;
&lt;p&gt;To use Git with the Automated Versioning Manager, properties may be specified on the command line or version-manager.properties should be updated as follows:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=GIT

repoUrl=https://github.com/gituser/testgitrepo.git

branchName=newbranch&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;branchName is an optional field. If the branch does not exist remotely, the tool will automatically create it on the local machine and push it to the remote repository as soon as addContents is executed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: if you are planning to check out a private repository, use the Git SSH URL rather than the HTTPS URL.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="_automated_import_manager"&gt;Automated Import Manager&lt;/h2&gt;
&lt;h2 id="_summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;With the Cloud-approved Appian &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager plug-in&lt;/a&gt; and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager client&lt;/a&gt;&amp;nbsp;available on the AppMarket, users can automatically deploy applications and patch contents (either applications from Appian OR packages generated from the &lt;a href="#Automated_Versioning_Manager"&gt;Automated Versioning Manager&lt;/a&gt;) to any environment. Users will have three options for deployment: the tool can either deploy from the tool&amp;rsquo;s user interface in one click, trigger the deployment from an external CI tool, or deploy from the command line.&lt;/p&gt;
&lt;p&gt;The Automated Import Manager automates the process of inspecting the application, executing DDL scripts, &lt;strong&gt;updating CDTs, republishing the appropriate datastores&lt;/strong&gt;, and importing the application.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4011.deployment_5F00_automation_5F00_02.png" /&gt;&lt;/div&gt;
&lt;h2 id="features_"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect Application:&lt;/strong&gt; This tool will automatically mimic the &amp;quot;Inspect&amp;quot; functionality that exists within Appian&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Validating Application Content:&lt;/strong&gt; In addition to inspecting the application, the tool will ensure all CDT dependents are included to avoid objects pointing to older versions.&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute DDL Scripts:&lt;/strong&gt; DDL scripts can be uploaded and automatically executed. NOTE: For Microsoft SQL Server, only Transact-SQL statements are valid.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute Migrations with Flyway:&amp;nbsp;&lt;/strong&gt;Flyway is a tool used for managing database migrations. It makes it easier to track SQL script versions and not re-execute SQL scripts that have already been run. If a Flyway&amp;nbsp;directory is provided, the Automated Import Manager will automatically&amp;nbsp;execute migrations against the corresponding datasource.&amp;nbsp;Learn more about Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/getstarted/how"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Update CDTs:&lt;/strong&gt; Users are no longer required to delete CDTs before updating them, this tool will perform this step automatically&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import Application and admin console configuration:&lt;/strong&gt; Automatically import an application with an optional customization file&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Republish Datastores:&lt;/strong&gt; After application import, datastores will be automatically published or republished&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add Patches:&lt;/strong&gt; Automatically add patch contents to a specified existing application&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="usage_"&gt;Usage&lt;/h2&gt;
&lt;h3 id="1-deploy-from-the-web-browser-ui"&gt;&amp;nbsp;Deploy from the Web Browser UI&lt;/h3&gt;
&lt;p&gt;The tool collects usage metrics by default. To opt-out of metrics collection, check the below option on the Web Browser UI:&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1600x480/__key/communityserver-wikis-components-files/00-00-00-00-46/0702.pastedimage1539370754100v1.png" /&gt;&lt;/div&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/796x1133/__key/communityserver-wikis-components-files/00-00-00-00-46/4186.Screen-Shot-2018_2D00_08_2D00_30-at-3.22.31-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Log into Appian as a system administrator&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the Deployment Automation UI available at the URL: &amp;lt;appian&amp;gt;/suite/plugins/servlet/deploymentautomation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Upload the patch or application you wish to import.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If this application is a patch, select the parent application to which patch contents should be added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the new application requires changes to the database schema (i.e. new or updated CDTs) you must choose one of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upload the corresponding DDL script(s) that accurately reflect these additions and/or updates.&lt;/li&gt;
&lt;li&gt;Set the datastore to &amp;quot;Automatically update database schema&amp;quot; and set &amp;quot;Allow Database Schema Changes Through Data Stores&amp;quot; in the Deployment section of the Appian Administration Console&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click on the button &amp;quot;Start Deployment&amp;quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;During the deployment, the screen is automatically refreshed every 5 seconds with the latest status of the deployment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the deployment is complete, the browser will update with a status page.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8228.deployment_5F00_automation_5F00_04.png" /&gt;&lt;/div&gt;
&lt;h3 id="2-deploy-from-the-command-line-script"&gt;&amp;nbsp;Deploy from the Command Line Script&lt;/h3&gt;
&lt;p&gt;The command line script - the client - can be downloaded from the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false&amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x2000/__key/communityserver-wikis-components-files/00-00-00-00-46/7723.Screen-Shot-2018_2D00_08_2D00_30-at-3.29.54-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open a command window in the same folder to which the client script and supporting libraries were unzipped.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the help guide pictured above, run the proper command to automatically import the application. Use -h or -help to view this menu at any time.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;-ac_customization_path: Indicates the path to the customization file to use when deploying the admin console&amp;nbsp;package or the application package.&lt;/li&gt;
&lt;li&gt;-admin_console_path: Indicates the path to the admin console file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-application_path: Indicates the path to the application file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-ddl_ds: Optional, use only if providing DDL scripts. The name of the datasource to use with the corresponding DDL script. Use a comma separator to enter multiple datasources.&lt;/li&gt;
&lt;li&gt;-ddl_path: Optional, use only if providing DDL scripts. Indicates the path to the DDL scripts to execute. Use a comma separator to enter multiple DDL script paths. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-flyway_path: Optional, use only if providing directories to execute DB migrations via Flyway. Use a comma separator to enter multiple directory paths. NOTE: Use quotations around the entry.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-force_import: A boolean flag which specifies whether or not the import ignores impact analysis results.If true, the import will occur even if objects with CDT references are missing&lt;/li&gt;
&lt;li&gt;-import_customization_path: Indicates the path to the import customization file to use&lt;/li&gt;
&lt;li&gt;-inspect_only: Optional, use to run an inspection of the package. Indicates the package should not be deployed but inspected only.&lt;/li&gt;
&lt;li&gt;-password: Password of the Appian user account&lt;/li&gt;
&lt;li&gt;-proxy_port: Optional, port of the proxy server to use to connect to Appian. This parameter is only used if the parameter -proxy_url is defined. The default value is 8080.&lt;/li&gt;
&lt;li&gt;-proxy_url: Optional, URL of the proxy to use to connect to Appian.&lt;/li&gt;
&lt;li&gt;-url: URL of the environment, of the format &lt;a href="http://example.appian.com/suite"&gt;https://example.appian.com/suite&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-username: Username of the Appian user account to use for deployment&lt;/li&gt;
&lt;li&gt;-uuid: UUID of the application to which patch contents will be added&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy the application by typing the command deploy-application.bat and including the relevant parameters. Your command will look something like the one pictured below.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;deploy-application.bat -application_path &amp;quot;PATH TO APPLICATION ZIP&amp;quot; -username SERVICE_ACCOUNT_USERNAME -password SERVICE_ACCOUNT_PASSWORD -url APPIAN_URL -ddl_path &amp;quot;PATH TO DLL 1, PATH TO DLL 2&amp;quot; -ddl_ds jdbc/Appian1,jdbc/Appian2&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the &lt;strong&gt;configuration file&amp;nbsp;import-manager.properties&lt;/strong&gt;. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;During the deployment, the prompt is automatically refreshed every 5 seconds with the latest status of the deployment. When the deployment is complete, a status response (like the one pictured below) will display.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6746.deployment_5F00_automation_5F00_06.png" /&gt;&lt;/div&gt;
&lt;h3 id="3-deploy-from-an-external-continuous-integration-tool"&gt;Deploy from an External Continuous Integration tool&lt;/h3&gt;
&lt;p&gt;Additional Requirement:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An existing external Continuous Integration tool (such as Jenkins or Hudson) that is properly configured&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The steps below provide the high level steps to deploy an application from Jenkins.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new external job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the job to run the import script using the guidance in Deployment Option #2 listed above&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute the job&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8132.deployment_5F00_automation_5F00_07.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;When the deployment is complete, check the status page verify that the import was successful.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/5078.deployment_5F00_automation_5F00_08.png" /&gt;&lt;/div&gt;
&lt;h2 id="_troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;h3 id="deciphering_script_error_messages"&gt;Deciphering Script Error Messages&lt;/h3&gt;
&lt;h3 id="inspect-failure"&gt;Inspect Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails on inspect, please check the error log and inspect log to determine the root cause of the inspect error. Additionally, please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Inspect_Package.html"&gt;Inspect Package&lt;/a&gt; documentation to determine what common inspect issues may arise.&lt;/p&gt;
&lt;h3 id="package-validation-failure"&gt;Package Validation Failure&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;This feature is only for Appian 7.11 and above.&lt;/strong&gt; If the Automated Import script fails during package validation, this means that objects with certain CDT dependencies are missing. Please check the error message which will include the list of missing required dependencies. Appian recommends to include these dependencies in the application prior to importing.&lt;/p&gt;
&lt;p&gt;In case you want to proceed with deploying the application regardless of missing CDT dependencies, use the flag -f.&lt;/p&gt;
&lt;h3 id="import-failure"&gt;Import Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails during import, it will produce an error log that contains the reason(s) for import failure. Please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Application_Deployment_Guidelines.html#Issues_During_Export_or_Import"&gt;Application Deployment Guidelines&lt;/a&gt; documentation on import issues to determine the root cause of the import failure.&lt;/p&gt;
&lt;h3 id="invalid-credentials"&gt;Invalid Credentials&lt;/h3&gt;
&lt;p&gt;Please ensure that these credentials are associated with an active Appian system administrator account. Basic user credentials cannot be used.&lt;/p&gt;
&lt;h3 id="connection-refused-with-deployment-command-line-script"&gt;Connection Refused With Deployment Command Line Script&lt;/h3&gt;
&lt;p&gt;A &amp;quot;Connection Refused&amp;quot; error could be the result of using the wrong URL when executing the script. The URL provided as a parameter must:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;include the suffix &amp;quot;/suite&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include a port number if not using the port 80 with HTTP or port 443 with HTTPS&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="release_notes"&gt;Release Notes&lt;/h2&gt;
&lt;h3 id="september&amp;nbsp;2021_-_release_2.5.13"&gt;September&amp;nbsp;2021 - Release 2.5.13&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed an issue where setting &amp;quot;appianObjectsRepoPath&amp;quot; prevented a package that included a patches.xml file from being processed successfully&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2021_-_release_2.5.12"&gt;March&amp;nbsp;2021 - Release 2.5.12&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Updated the link to the import log in the ADM servlet after a change was made to the Appian API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed a bug that was preventing Flyway files from being included in metadata.properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september&amp;nbsp;2020_-_release_2.5.11"&gt;September&amp;nbsp;2020 - Release 2.5.11&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Upgraded Flyway version to 6.5.5 for compatibility with MariaDB.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2020_-_release_2.5.10"&gt;August&amp;nbsp;2020 - Release 2.5.10&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added the ability to dynamically generate the Metadata file for the &amp;quot;buildAllApps&amp;quot; action to reflect only the list of database scripts that are included in the package for a given commit range.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li class="li1"&gt;Fixed the interpretation of &amp;quot;appianObjectsRepoPath&amp;quot; on Windows platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="december&amp;nbsp;2019&amp;nbsp;-_release_2.5.9"&gt;December&amp;nbsp;2019&amp;nbsp;- Release 2.5.9&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added DNS proxy support to ADM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AIM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AVM&lt;/li&gt;
&lt;li class="li1"&gt;Added support for special characters in passwords in ADM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="july&amp;nbsp;2019&amp;nbsp;-_release_2.5.8"&gt;July&amp;nbsp;2019&amp;nbsp;- Release 2.5.8&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;Fixed the problem with obtaining TransactionManager and creating DataConfiguration against latest the Appian version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april&amp;nbsp;2019&amp;nbsp;-_release_2.5.7"&gt;April&amp;nbsp;2019&amp;nbsp;- Release 2.5.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added commit message prompt to folder listener&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed Windows issue with pushing file updates to versioning manager&lt;/li&gt;
&lt;li class="li1"&gt;Fixed import patch failure not adding newly created objects issue&lt;/li&gt;
&lt;li class="li1"&gt;Fixed semicolon separator parsing issue&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2019_-_release_2.5.6"&gt;March&amp;nbsp;2019 - Release 2.5.6&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added proxy authentication support for import client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="february&amp;nbsp;2019_-_release_2.5.5"&gt;February&amp;nbsp;2019 - Release 2.5.5&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed DDL paths bug&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2019_-_release_2.5.4"&gt;January&amp;nbsp;2019 - Release 2.5.4&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Improved descriptions of errors encountered during deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed &amp;quot;Connection Refused&amp;quot; bug when running on a Jenkins server&lt;/li&gt;
&lt;li&gt;Fixed &amp;quot;buildSingleApp&amp;quot; AVM bug when specifying an appianObjectsRepoPath&lt;/li&gt;
&lt;li&gt;Fixed rare &amp;quot;hanging&amp;quot; bug in AIM Client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="november&amp;nbsp;2018_-_release_2.5.3"&gt;November&amp;nbsp;2018 - Release 2.5.3&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Created a reset command for Remote Automated Deployment Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Version and Import Metrics Logger Initialized correctly to fix null pointer exception&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october&amp;nbsp;2018_-_release_2.5.2"&gt;October&amp;nbsp;2018 - Release 2.5.2&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li&gt;Folder listener to auto trigger &amp;ldquo;Add Contents&amp;rdquo; action&lt;/li&gt;
&lt;li&gt;Field validation for import and versioning manager properties files&lt;/li&gt;
&lt;li&gt;Usage metrics collection to better understand tool use&lt;/li&gt;
&lt;li&gt;Updated error log messages&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;ADM UI: Handle apostrophes in app name&lt;/li&gt;
&lt;li&gt;ZIP type validation for Automated Import Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="&amp;nbsp;september&amp;nbsp;2018_-_release_2.5.1"&gt;&amp;nbsp;September&amp;nbsp;2018 - Release 2.5.1&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;New buildMultipleApps action&lt;/li&gt;
&lt;li class="li1"&gt;Check version of tools with -v or -version flags&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed ADM SQL errors with non-null statements and forward slash as delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.5.0"&gt;August&amp;nbsp;2018 - Release 2.5.0&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added Flyway DB version control tool to command line and AIM GUI&lt;/li&gt;
&lt;li class="li1"&gt;Allow import of DDL scripts or Flyway scripts without an application zip or patch zip&lt;/li&gt;
&lt;li class="li1"&gt;Added Folder Listener script that will run addContents automatically when a file is dropped into a folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added buildAllApps to list of approved actions&lt;/li&gt;
&lt;li class="li1"&gt;Set inspect_only properly in AIM&lt;/li&gt;
&lt;li class="li1"&gt;Fixed bug where repo would be cloned into a folder with an incorrect name&lt;/li&gt;
&lt;li class="li1"&gt;Passed in correct authentication token for buildAllApps and buildSingleApp&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.4.7"&gt;August&amp;nbsp;2018 - Release 2.4.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added &amp;quot;buildSingleApp&amp;quot; action to extract one app from multi app repo&lt;/li&gt;
&lt;li class="li1"&gt;Renamed &amp;quot;buildPackage&amp;quot; action to &amp;quot;buildAllApps&amp;quot; to better clarify the functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed miscellaneous issues with parsing SQL in DDL file&lt;/li&gt;
&lt;li class="li1"&gt;Mark/reset issue with large customization files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june&amp;nbsp;2018_-_release_2.4.6"&gt;June&amp;nbsp;2018 - Release 2.4.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added an import-manager.properties file to set default values for importing applications&lt;/li&gt;
&lt;li&gt;Automated versioning manager supports adding a package with multiple patches&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Application version UUID is updated when adding patches to a version control&lt;/li&gt;
&lt;li&gt;Import no longer fails when SQL in DDL file contains a &amp;quot;;&amp;quot;, &amp;quot;&amp;ndash;&amp;quot; or &amp;quot;/**/&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2018_-_release_2.4.5"&gt;March 2018 - Release 2.4.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add support for proxy configuration in the deployment client script with parameters &amp;quot;proxy_port&amp;quot; and &amp;quot;proxy_url&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2018_-_release_2.4.4"&gt;January&amp;nbsp;2018 - Release 2.4.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2018_-_release_2.4.3"&gt;January 2018 - Release 2.4.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.4&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2017_-_release_2.4.2"&gt;September 2017 - Release 2.4.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.3&lt;/li&gt;
&lt;li&gt;Better handling of end of line characters in the SQL scripts&lt;/li&gt;
&lt;li&gt;Support for customization file when deploying an application package&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2017_-_release_2.4.1"&gt;June 2017 - Release 2.4.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.2&lt;/li&gt;
&lt;li&gt;Fix defect preventing to execute DB scripts as part of a deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2017_-_release_2.4.0"&gt;January 2017 - Release 2.4.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.1&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october_2016_-_release_2.3"&gt;October 2016 - Release 2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 16.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.9"&gt;September 2016 - Release 2.2.9&lt;/h3&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Successfully deploy application packages containing new Datastore entities and new dependents on these entities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.8"&gt;September 2016 - Release 2.2.8&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with missing artifacts in package when using START_HASH and END_HASH.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.7"&gt;August 2016 - Release 2.2.7&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing updated Documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.6"&gt;August 2016 - Release 2.2.6&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New parameter no_update to build a package from the local repository without first performing a checkout&lt;/li&gt;
&lt;li&gt;New integrity control when checking in applications and patches&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.5"&gt;August 2016 - Release 2.2.5&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing new CDTs and updated CDTs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.4"&gt;June 2016 - Release 2.2.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.3"&gt;June 2016 - Release 2.2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Include the source code in all modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.2"&gt;June 2016 - Release 2.2.2&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new parameter appian_objects_repo_path to specify where the Appian artifacts are located in the repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="may_2016_-_release_2.2.0"&gt;May 2016 - Release 2.2.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for admin console packages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed update-database-schema to support native product capability of automatic database updates via datastore and administration console.&lt;/li&gt;
&lt;li&gt;Updated Web Browser UI style&lt;/li&gt;
&lt;li&gt;Removed option for &amp;quot;Automatically update the database schema when publishing the data stores&amp;quot; from the Web Browser UI&lt;/li&gt;
&lt;li&gt;Added support for admin console deployments&lt;/li&gt;
&lt;li&gt;Added support in command line for inspect_only parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2016_-_release_2.1.0"&gt;March 2016 - Release 2.1.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for input flexibility. Now, the command line for versioning manager supports all possible parameters.&lt;/li&gt;
&lt;li&gt;Allowed tags as inputs to start hash and end hash.&lt;/li&gt;
&lt;li&gt;Added inputs of the following predefined keywords: FIRST_COMMIT (which maps to first commit ever made) and LAST_COMMIT (the previous commit). NOTE: this is only allowed on the start hash input.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for 16.1.&lt;/li&gt;
&lt;li&gt;Added action for &amp;quot;Inspect Only&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment Automation</title><link>https://community.appian.com/success/w/guide/3328/deployment-automation/revision/4</link><pubDate>Thu, 26 Oct 2023 18:14:23 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43c6339b-3b7e-4b44-ba4b-4a8c46753052</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3328/deployment-automation#comments</comments><description>Revision 4 posted to Guide by joel.larin on 10/26/2023 6:14:23 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian provides several DevOps tools to automate the &lt;a href="https://docs.appian.com/suite/help/latest/devops-with-appian.html#deploy" rel="noopener noreferrer" target="_blank"&gt;deployment of Appian applications&lt;/a&gt; such as Compare &amp;amp; Deploy and Deployment APIs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://docs.appian.com/suite/help/latest/Deploy_to_Target_Environments.html#prodlink-external-deployment-apis"&gt;Deployment APIs&lt;/a&gt; offer a set of API&amp;nbsp;endpoints that allow you to inspect and deploy applications, packages, import customization files, plug-ins, and execute database scripts.&amp;nbsp;These APIs allow you to programmatically trigger deployments and integrate your Appian release into an automated pipeline. You can set up your pipeline once and run it the exact same way for all future deployments, saving time and avoiding manual errors. It is recommended to use the Deployment APIs whenever possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The tools described in this play offer a few alternatives to Appian base product features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tightly integrate with a version control system to store and retrieve package files using the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Automated Versioning Manager (AVM)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Programmatically deploy Admin Console settings and applications using the &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) plug-in&lt;/a&gt;&amp;nbsp;and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Table Of Content&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Automated_Versioning_Manager"&gt;Automated Versioning Manager&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Summary1"&gt;Summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Features1"&gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Usage1"&gt;Usage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Script_Execution1"&gt;Script Execution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Script_Setup1"&gt;Using the Properties File&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Use_Cases1"&gt;Use Cases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Using_Subversion_as_Version_Control_System"&gt;Using Subversion as Version Control System&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Using_Git_as_Version_Control_System"&gt;Using Git as Version Control System&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Automated_Import_Manager"&gt;Automated Import Manager&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Summary2"&gt;Summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Features2"&gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Usage2"&gt;Usage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Deploy_from_the_Web_Browser_UI"&gt;Deploy from the Web Browser UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Deploy_from_the_Command_Line_Script"&gt;Deploy from the Command Line Script&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Deploy_from_an_External_Continuous_Integration_Tool"&gt;Deploy from an External Continuous Integration Tool&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Troubleshooting"&gt;Troubleshooting&lt;/a&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Release_Notes"&gt;Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="automated_versioning_manager"&gt;Automated Versioning Manager&lt;/h2&gt;
&lt;h3 id="summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;The Automated Versioning Manager - available on the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt; - is a tool that helps managing Appian applications and database DDL files in a version control system. Given an Appian application ZIP file, the Automated Versioning Manager performs the following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;It unzips the application and organizes the artifact XML files in the repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It automates the check-in and checkout operations with the version control system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It generates application packages for import in Appian based on the contents of the repository and a range of changes to include.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal of this tool is to facilitate the adoption and usage of a version control system to perform configuration management of the Appian applications and database DDL files.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/1374.deployment_5F00_automation_5F00_00.png" /&gt;&lt;/div&gt;
&lt;h3 id="features"&gt;Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Version Control integration (Git, SVN)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supports Appian applications and patches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate import package from hash ranges&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Folder Listener to add contents to Version Control&lt;/li&gt;
&lt;li&gt;Supports GitHub, GitLab, and BitBucket for Version Control&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usage"&gt;Usage&lt;/h3&gt;
&lt;p&gt;The automated versioning tool is a script to be run from the command line or terminal. It contains a wrapper for Windows (version-application.bat) and Linux (version-application.sh) systems. This document will first discuss how to use the tool in general, and then discuss use cases to give concrete examples. All parameters can be passed either on the command line or in the properties file.&lt;/p&gt;
&lt;h3 id="script-execution"&gt;Script Execution&lt;/h3&gt;
&lt;p&gt;To run the script, open a command window and navigate to the directory where the automated versioning scripts are located. They are named version-application.bat or version-application.sh.&lt;/p&gt;
&lt;p&gt;Use the -h or -help parameters to view the help menu within the script. The parameters are described here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Required Parameters (required for all four actions: addContents, buildAllApps, buildSingleApp, buildMultipleApps, and updateLocalRepo)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-action - Selects which action of the script to run. Acceptable values are: addContents, updateLocalRepo, buildAllApps,&amp;nbsp;buildSingleApp, and&amp;nbsp;buildMultipleApps. Each action is detailed in the use cases below.&lt;/li&gt;
&lt;li&gt;-vc_username -The username associated with the version control (Git or SVN) account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-vc_password -Please check the Security Settings of the version control account. If you have 2-factor authentication enabled, the password requires the version control account token. If you do NOT have 2-factor authentication enabled, the password is the one associated with the version control account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for addContents action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-application_path - The path on your filesystem where the application ZIP is located.&lt;/li&gt;
&lt;li&gt;-admin_console_path - The path on your filesystem where the admin console ZIP file is located.&lt;/li&gt;
&lt;li&gt;-ddl_path - List of comma-separated paths for the DDL files to be included in the deployment package.&lt;/li&gt;
&lt;li&gt;-flyway_path&amp;nbsp;- List of comma-separated paths for the directories to execute DB migrations via Flyway.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;. To learn how&amp;nbsp;the Automated Import Manager&amp;nbsp;uses Flyway, refer to &lt;a href="#Features2"&gt;AIM Features&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-ddl_ds - List of comma-separated datasources associated with the provided DDL files. Must provide the same number of entries as number of DDL files specified with the -ddl_path option or number of directories specified with the -flyway_path option. &lt;strong&gt;NOTE: the order of the specified datasource names must match the order of the script paths specified.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-uuid - The UUID of the application to which the contents of the application should be added. This option is only used if deploying a patch application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- The&amp;nbsp;name of the application to which the contents of the application should be added. This option is only used if deploying a&amp;nbsp;patch&amp;nbsp;application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-commit_message - The message that will be associated with the commit. If not included, a default commit message Committed by @username is provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildAllApps&amp;nbsp;action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-start_hash - Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit. &lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash - End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildSingleApp action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid - The UUID of the application you want to build.&lt;/li&gt;
&lt;li&gt;-application_name - The name of the application you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildMultipleApps action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid&amp;nbsp;- Comma separated list of UUIDs of the applications you want to build.&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- Comma separated list of names of the applications that you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update&amp;nbsp;- Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for updateLocalRepo action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are no additional options (other than required options) for updateLocalRepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Additional Parameters&lt;/strong&gt; - These parameters are REQUIRED, and may be specified here or in the properties file (described in the following section). If they are specified in both locations, the parameters specified in the command line take precedence.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-version_control_type - The version control type used, either GIT or SVN.&lt;/li&gt;
&lt;li&gt;-local_repo_path - The path on the filesystem where the local repository is located. All files on the remote repository are cloned to this path. Example: C:\\MyFiles\\ChangeManagementRepo. &lt;strong&gt;NOTE: if using Windows, be sure to include double forward slashes (as seen in the example) for path separation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-appian_objects_repo_path - Path to the folder containing the Appian objects in the repository. This path is relative to the path of the local repository. If not specified, the Appian objects are checked out to and committed from the root of the local repository path.&lt;/li&gt;
&lt;li&gt;-repo_url - The URL that defines the remote repository. Example: https://github.com/git-username/project-name.git, svn+ssh://svn.code.sf.net/p/project-name/code&lt;/li&gt;
&lt;li&gt;-package_path - &lt;em&gt;For buildAllApps,&amp;nbsp;&lt;em&gt;buildSingleApp, and&amp;nbsp;&lt;em&gt;&lt;em&gt;buildMultipleApps&lt;/em&gt;&lt;/em&gt;&amp;nbsp;&lt;/em&gt;only.&lt;/em&gt; The path on the filesystem where packages are generated. Must include filename of package.&lt;/li&gt;
&lt;li&gt;-branch_name - Branch to check out and use (if not master)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="configuring-using-the-properties-file"&gt;Configuring using the Properties File&lt;/h3&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the configuration file version-manager.properties. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;In case an option is specified both on the command line and in the properties file, the command line value takes precedence and is used.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false &amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;p&gt;If used, the property&amp;nbsp;&lt;code&gt;appianObjectRepoPath&lt;/code&gt;&amp;nbsp;must not reference a file path more than one level below the root directory of the repository. Ex.&amp;nbsp;appianObjectRepoPath =&amp;nbsp;/appian/objects&amp;nbsp;is an acceptable configuration but&amp;nbsp;appianObjectRepoPath = /appian/folder/objects is not valid.&lt;/p&gt;
&lt;h3 id="use-cases"&gt;Use Cases&lt;/h3&gt;
&lt;h4 id="1-new-developer-joins-team-updatelocalrepo"&gt;#1: New developer joins team (updateLocalRepo)&lt;/h4&gt;
&lt;p&gt;In this use case, a new developer has joined the team and wants to get a copy of all the work completed so far. The developer:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Update version-manager.properties with the appropriate fields. See the &lt;a href="#Script_Setup1"&gt;Script Setup&lt;/a&gt; section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;updateLocalRepo&lt;/strong&gt; as the action flag. The developer must provide the username and password for authenticating against their version control system (-vc_username, -vc_password).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action updateLocalRepo -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, the developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;h4 id="2-developer-adds-artifacts-to-the-repository-addcontents"&gt;#2: Developer adds artifacts to the repository (addContents)&lt;/h4&gt;
&lt;p&gt;In this use case, the developer on a team has been working in the development environment and has changes he wishes to add to the repository. The changes may be a new application or a patch to an existing application. Note: the repository serves as a record of changes, and can be thought of as an additional Appian environment. The steps involved are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the Appian development environment, create an application (or a patch) that contains the changed objects.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Export those changes and download the application ZIP file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;addContents&lt;/strong&gt; as the action flag. The developer must provide the path of the ZIP file they exported (-application_path) from Appian in step 2. They must also provide the username and password for authenticating their version control system (-vc_username, -vc_password). &lt;strong&gt;NOTE: these are NOT Appian credentials.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Optional: if the application specified for -application_path is a patch, update the -uuid option to specify the parent application&amp;rsquo;s uuid. &lt;em&gt;The script will exit with error if a patch application ZIP is provided but no uuid is passed in.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Optional: if DDL scripts have been modified, specify the path(s) and their associated JDBC datasource names. NOTE: The same number of DDL scripts and datasource names must be entered into the script, even if the datasource is the same for all scripts. For example: the developer wishes to add two ddl scripts located at C:\DDLs\script1.sql and C:\DDLs\script2.sql. They do so by setting the -ddl_path option as C:\DDLs\script1.sql,C:\DDLs\script2.sql If both scripts are to be executed on jdbc/AppianDS, they must set the -ddl_ds option as jdbc/AppianDS,jdbc/AppianDS. Note that the datasource name is passed in &lt;strong&gt;&lt;em&gt;twice&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: include a custom commit message using the -commit_message option&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="caution"&gt;WARNING: It is HIGHLY recommended that DDL scripts are developed INCREMENTALLY. That is, do not modify existing DDL scripts - instead, create new scripts that only contain the commands the designer wishes to execute.This is because if the designer updates an existing DDL script, all lines in the script will be executed. This can lead to data integrity issues if not managed properly. PLEASE EXERCISE CAUTION WHEN MODIFYING EXISTING DDL SCRIPTS. Example: if the designer modifies a script that contains commands to drop and recreate a table, the script will drop and recreate the table even if the designer did not modify that section.&lt;/div&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action addContents -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -application_path &amp;quot;C:\App.zip&amp;quot; -ddl_ds jdbc/AppianAnywhere -ddl_path “C:\script1.sql” -commit_message “Adding account executive record”&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When the script is executed, three things occur:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The application ZIP is unzipped and placed into the local repository, and the DDL files are placed into a ddl_files folder within the local repository. If the -uuid option is selected, the appropriate application xml file is updated.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The changes are committed (and pushed, if using Git) to the remote repository.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When the package is imported into Appian, all lines within script1.sql will be executed and contents within the application ZIP are imported.&lt;/p&gt;
&lt;p&gt;Using Folder Listener:&lt;/p&gt;
&lt;p&gt;Alternatively, instead of running the script, the developer can execute&amp;nbsp;avm-folder-listener-&amp;lt;os&amp;gt;&amp;nbsp;in the&amp;nbsp;folder-listener&amp;nbsp;directory. The following command prompt will appear:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x960/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png" /&gt;&lt;/div&gt;
&lt;p&gt;The developer will provide the directory that the application or patch ZIPs will be dropped into as well as the directory of the automated versioning manager tool. Otherwise, the default directories will be used.&lt;/p&gt;
&lt;p&gt;Once setup, the developer can drag the desired application ZIP into the specified directory and the application ZIP will be versioned in their GIT repository. This is assuming that all necessary fields have already been configured in the file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;p&gt;If the developer is supplying a patch ZIP, the console will prompt the developer for the associated application uuid or name. Once supplied, the patch will be deployed to the specified environment in the&amp;nbsp;file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;h4 id="3-build-master-generates-new-rc-deployment-package-buildpackage"&gt;#3: Build master generates new RC deployment package (buildAllApps)&lt;/h4&gt;
&lt;p&gt;In this use case, all additions made by the team have been incorporated into the remote repository and have gone through sufficient testing. The build master is now ready to promote a new package to the higher environment. The new package should include all additions and changes since the last deployment. The build master will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;(If not done previously) Update version-manager.properties with the appropriate fields. See the Script Setup section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;buildAllApps&lt;/strong&gt; as the action flag. The build master must provide the username and password for authenticating against their version control system (-vc_username, -vc_password). To get a specific set of changes, input a value for the -start_hash option and the -end_hash option. This will generate the package with all new and changed files between the two hash options.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;NOTE: the package will &lt;strong&gt;NOT&lt;/strong&gt; include the changes introduced in the start hash, but &lt;strong&gt;WILL&lt;/strong&gt; include changes introduced in the end hash.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Command:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action buildAllApps -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -start_hash ac37459 -end_hash 6e83b42&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, it generates a package at the location specified by the packagePath field in version-manager.properties.&lt;/p&gt;
&lt;p&gt;Finally, the build master will import the RC package into the higher environment using the Automated Import tool as described later in this play.&lt;/p&gt;
&lt;h2 id="_using_subversion_as_version_control_system"&gt;Using Subversion as Version Control System&lt;/h2&gt;
&lt;p&gt;To allow the Automated Versioning Manager to perform the checkout and commit operations with Subversion, the tool assumes the common Subversion project structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;trunk&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;branches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tags&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The location of the repository root must be provided by the property repoURL.&lt;/p&gt;
&lt;p&gt;Example: The following version-manager.properties configuration checks out the release 1 branch from the repository located at &lt;a href="https://svn.code.sf.net/p/deploymentautomationexample/code"&gt;https://svn.code.sf.net/p/deploymentautomationexample/code&lt;/a&gt; and commit all changes to the branch &amp;quot;release1&amp;quot;. Optionally, you may specify each of these parameters as command line arguments instead of using the version-manager.properties file.&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=SVN

repoUrl=https://svn.code.sf.net/p/deploymentautomationexample/code

branchName=branches/release1&lt;/pre&gt;&lt;/pre&gt;
&lt;h2 id="_using_git_as_version_control_system"&gt;Using Git as Version Control System&lt;/h2&gt;
&lt;p&gt;To use Git with the Automated Versioning Manager, properties may be specified on the command line or version-manager.properties should be updated as follows:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=GIT

repoUrl=https://github.com/gituser/testgitrepo.git

branchName=newbranch&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;branchName is an optional field. If the branch does not exist remotely, the tool will automatically create it on the local machine and push it to the remote repository as soon as addContents is executed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: if you are planning to check out a private repository, use the Git SSH URL rather than the HTTPS URL.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="_automated_import_manager"&gt;Automated Import Manager&lt;/h2&gt;
&lt;h2 id="_summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;With the Cloud-approved Appian &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager plug-in&lt;/a&gt; and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager client&lt;/a&gt;&amp;nbsp;available on the AppMarket, users can automatically deploy applications and patch contents (either applications from Appian OR packages generated from the &lt;a href="#Automated_Versioning_Manager"&gt;Automated Versioning Manager&lt;/a&gt;) to any environment. Users will have three options for deployment: the tool can either deploy from the tool&amp;rsquo;s user interface in one click, trigger the deployment from an external CI tool, or deploy from the command line.&lt;/p&gt;
&lt;p&gt;The Automated Import Manager automates the process of inspecting the application, executing DDL scripts, &lt;strong&gt;updating CDTs, republishing the appropriate datastores&lt;/strong&gt;, and importing the application.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4011.deployment_5F00_automation_5F00_02.png" /&gt;&lt;/div&gt;
&lt;h2 id="features_"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect Application:&lt;/strong&gt; This tool will automatically mimic the &amp;quot;Inspect&amp;quot; functionality that exists within Appian&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Validating Application Content:&lt;/strong&gt; In addition to inspecting the application, the tool will ensure all CDT dependents are included to avoid objects pointing to older versions.&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute DDL Scripts:&lt;/strong&gt; DDL scripts can be uploaded and automatically executed. NOTE: For Microsoft SQL Server, only Transact-SQL statements are valid.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute Migrations with Flyway:&amp;nbsp;&lt;/strong&gt;Flyway is a tool used for managing database migrations. It makes it easier to track SQL script versions and not re-execute SQL scripts that have already been run. If a Flyway&amp;nbsp;directory is provided, the Automated Import Manager will automatically&amp;nbsp;execute migrations against the corresponding datasource.&amp;nbsp;Learn more about Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/getstarted/how"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Update CDTs:&lt;/strong&gt; Users are no longer required to delete CDTs before updating them, this tool will perform this step automatically&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import Application and admin console configuration:&lt;/strong&gt; Automatically import an application with an optional customization file&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Republish Datastores:&lt;/strong&gt; After application import, datastores will be automatically published or republished&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add Patches:&lt;/strong&gt; Automatically add patch contents to a specified existing application&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="usage_"&gt;Usage&lt;/h2&gt;
&lt;h3 id="1-deploy-from-the-web-browser-ui"&gt;&amp;nbsp;Deploy from the Web Browser UI&lt;/h3&gt;
&lt;p&gt;The tool collects usage metrics by default. To opt-out of metrics collection, check the below option on the Web Browser UI:&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1600x480/__key/communityserver-wikis-components-files/00-00-00-00-46/0702.pastedimage1539370754100v1.png" /&gt;&lt;/div&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/796x1133/__key/communityserver-wikis-components-files/00-00-00-00-46/4186.Screen-Shot-2018_2D00_08_2D00_30-at-3.22.31-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Log into Appian as a system administrator&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the Deployment Automation UI available at the URL: &amp;lt;appian&amp;gt;/suite/plugins/servlet/deploymentautomation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Upload the patch or application you wish to import.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If this application is a patch, select the parent application to which patch contents should be added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the new application requires changes to the database schema (i.e. new or updated CDTs) you must choose one of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upload the corresponding DDL script(s) that accurately reflect these additions and/or updates.&lt;/li&gt;
&lt;li&gt;Set the datastore to &amp;quot;Automatically update database schema&amp;quot; and set &amp;quot;Allow Database Schema Changes Through Data Stores&amp;quot; in the Deployment section of the Appian Administration Console&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click on the button &amp;quot;Start Deployment&amp;quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;During the deployment, the screen is automatically refreshed every 5 seconds with the latest status of the deployment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the deployment is complete, the browser will update with a status page.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8228.deployment_5F00_automation_5F00_04.png" /&gt;&lt;/div&gt;
&lt;h3 id="2-deploy-from-the-command-line-script"&gt;&amp;nbsp;Deploy from the Command Line Script&lt;/h3&gt;
&lt;p&gt;The command line script - the client - can be downloaded from the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false&amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x2000/__key/communityserver-wikis-components-files/00-00-00-00-46/7723.Screen-Shot-2018_2D00_08_2D00_30-at-3.29.54-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open a command window in the same folder to which the client script and supporting libraries were unzipped.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the help guide pictured above, run the proper command to automatically import the application. Use -h or -help to view this menu at any time.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;-ac_customization_path: Indicates the path to the customization file to use when deploying the admin console&amp;nbsp;package or the application package.&lt;/li&gt;
&lt;li&gt;-admin_console_path: Indicates the path to the admin console file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-application_path: Indicates the path to the application file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-ddl_ds: Optional, use only if providing DDL scripts. The name of the datasource to use with the corresponding DDL script. Use a comma separator to enter multiple datasources.&lt;/li&gt;
&lt;li&gt;-ddl_path: Optional, use only if providing DDL scripts. Indicates the path to the DDL scripts to execute. Use a comma separator to enter multiple DDL script paths. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-flyway_path: Optional, use only if providing directories to execute DB migrations via Flyway. Use a comma separator to enter multiple directory paths. NOTE: Use quotations around the entry.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-force_import: A boolean flag which specifies whether or not the import ignores impact analysis results.If true, the import will occur even if objects with CDT references are missing&lt;/li&gt;
&lt;li&gt;-import_customization_path: Indicates the path to the import customization file to use&lt;/li&gt;
&lt;li&gt;-inspect_only: Optional, use to run an inspection of the package. Indicates the package should not be deployed but inspected only.&lt;/li&gt;
&lt;li&gt;-password: Password of the Appian user account&lt;/li&gt;
&lt;li&gt;-proxy_port: Optional, port of the proxy server to use to connect to Appian. This parameter is only used if the parameter -proxy_url is defined. The default value is 8080.&lt;/li&gt;
&lt;li&gt;-proxy_url: Optional, URL of the proxy to use to connect to Appian.&lt;/li&gt;
&lt;li&gt;-url: URL of the environment, of the format &lt;a href="http://example.appian.com/suite"&gt;https://example.appian.com/suite&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-username: Username of the Appian user account to use for deployment&lt;/li&gt;
&lt;li&gt;-uuid: UUID of the application to which patch contents will be added&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy the application by typing the command deploy-application.bat and including the relevant parameters. Your command will look something like the one pictured below.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;deploy-application.bat -application_path &amp;quot;PATH TO APPLICATION ZIP&amp;quot; -username SERVICE_ACCOUNT_USERNAME -password SERVICE_ACCOUNT_PASSWORD -url APPIAN_URL -ddl_path &amp;quot;PATH TO DLL 1, PATH TO DLL 2&amp;quot; -ddl_ds jdbc/Appian1,jdbc/Appian2&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the &lt;strong&gt;configuration file&amp;nbsp;import-manager.properties&lt;/strong&gt;. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;During the deployment, the prompt is automatically refreshed every 5 seconds with the latest status of the deployment. When the deployment is complete, a status response (like the one pictured below) will display.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6746.deployment_5F00_automation_5F00_06.png" /&gt;&lt;/div&gt;
&lt;h3 id="3-deploy-from-an-external-continuous-integration-tool"&gt;Deploy from an External Continuous Integration tool&lt;/h3&gt;
&lt;p&gt;Additional Requirement:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An existing external Continuous Integration tool (such as Jenkins or Hudson) that is properly configured&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The steps below provide the high level steps to deploy an application from Jenkins.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new external job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the job to run the import script using the guidance in Deployment Option #2 listed above&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute the job&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8132.deployment_5F00_automation_5F00_07.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;When the deployment is complete, check the status page verify that the import was successful.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/5078.deployment_5F00_automation_5F00_08.png" /&gt;&lt;/div&gt;
&lt;h2 id="_troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;h2 id="deciphering_script_error_messages"&gt;Deciphering Script Error Messages&lt;/h2&gt;
&lt;h3 id="inspect-failure"&gt;Inspect Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails on inspect, please check the error log and inspect log to determine the root cause of the inspect error. Additionally, please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Inspect_Package.html"&gt;Inspect Package&lt;/a&gt; documentation to determine what common inspect issues may arise.&lt;/p&gt;
&lt;h3 id="package-validation-failure"&gt;Package Validation Failure&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;This feature is only for Appian 7.11 and above.&lt;/strong&gt; If the Automated Import script fails during package validation, this means that objects with certain CDT dependencies are missing. Please check the error message which will include the list of missing required dependencies. Appian recommends to include these dependencies in the application prior to importing.&lt;/p&gt;
&lt;p&gt;In case you want to proceed with deploying the application regardless of missing CDT dependencies, use the flag -f.&lt;/p&gt;
&lt;h3 id="import-failure"&gt;Import Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails during import, it will produce an error log that contains the reason(s) for import failure. Please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Application_Deployment_Guidelines.html#Issues_During_Export_or_Import"&gt;Application Deployment Guidelines&lt;/a&gt; documentation on import issues to determine the root cause of the import failure.&lt;/p&gt;
&lt;h3 id="invalid-credentials"&gt;Invalid Credentials&lt;/h3&gt;
&lt;p&gt;Please ensure that these credentials are associated with an active Appian system administrator account. Basic user credentials cannot be used.&lt;/p&gt;
&lt;h3 id="connection-refused-with-deployment-command-line-script"&gt;Connection Refused With Deployment Command Line Script&lt;/h3&gt;
&lt;p&gt;A &amp;quot;Connection Refused&amp;quot; error could be the result of using the wrong URL when executing the script. The URL provided as a parameter must:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;include the suffix &amp;quot;/suite&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include a port number if not using the port 80 with HTTP or port 443 with HTTPS&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="release_notes"&gt;Release Notes&lt;/h2&gt;
&lt;h3 id="september&amp;nbsp;2021_-_release_2.5.13"&gt;September&amp;nbsp;2021 - Release 2.5.13&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed an issue where setting &amp;quot;appianObjectsRepoPath&amp;quot; prevented a package that included a patches.xml file from being processed successfully&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2021_-_release_2.5.12"&gt;March&amp;nbsp;2021 - Release 2.5.12&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Updated the link to the import log in the ADM servlet after a change was made to the Appian API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed a bug that was preventing Flyway files from being included in metadata.properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september&amp;nbsp;2020_-_release_2.5.11"&gt;September&amp;nbsp;2020 - Release 2.5.11&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Upgraded Flyway version to 6.5.5 for compatibility with MariaDB.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2020_-_release_2.5.10"&gt;August&amp;nbsp;2020 - Release 2.5.10&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added the ability to dynamically generate the Metadata file for the &amp;quot;buildAllApps&amp;quot; action to reflect only the list of database scripts that are included in the package for a given commit range.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li class="li1"&gt;Fixed the interpretation of &amp;quot;appianObjectsRepoPath&amp;quot; on Windows platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="december&amp;nbsp;2019&amp;nbsp;-_release_2.5.9"&gt;December&amp;nbsp;2019&amp;nbsp;- Release 2.5.9&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added DNS proxy support to ADM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AIM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AVM&lt;/li&gt;
&lt;li class="li1"&gt;Added support for special characters in passwords in ADM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="july&amp;nbsp;2019&amp;nbsp;-_release_2.5.8"&gt;July&amp;nbsp;2019&amp;nbsp;- Release 2.5.8&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;Fixed the problem with obtaining TransactionManager and creating DataConfiguration against latest the Appian version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april&amp;nbsp;2019&amp;nbsp;-_release_2.5.7"&gt;April&amp;nbsp;2019&amp;nbsp;- Release 2.5.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added commit message prompt to folder listener&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed Windows issue with pushing file updates to versioning manager&lt;/li&gt;
&lt;li class="li1"&gt;Fixed import patch failure not adding newly created objects issue&lt;/li&gt;
&lt;li class="li1"&gt;Fixed semicolon separator parsing issue&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2019_-_release_2.5.6"&gt;March&amp;nbsp;2019 - Release 2.5.6&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added proxy authentication support for import client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="february&amp;nbsp;2019_-_release_2.5.5"&gt;February&amp;nbsp;2019 - Release 2.5.5&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed DDL paths bug&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2019_-_release_2.5.4"&gt;January&amp;nbsp;2019 - Release 2.5.4&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Improved descriptions of errors encountered during deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed &amp;quot;Connection Refused&amp;quot; bug when running on a Jenkins server&lt;/li&gt;
&lt;li&gt;Fixed &amp;quot;buildSingleApp&amp;quot; AVM bug when specifying an appianObjectsRepoPath&lt;/li&gt;
&lt;li&gt;Fixed rare &amp;quot;hanging&amp;quot; bug in AIM Client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="november&amp;nbsp;2018_-_release_2.5.3"&gt;November&amp;nbsp;2018 - Release 2.5.3&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Created a reset command for Remote Automated Deployment Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Version and Import Metrics Logger Initialized correctly to fix null pointer exception&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october&amp;nbsp;2018_-_release_2.5.2"&gt;October&amp;nbsp;2018 - Release 2.5.2&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li&gt;Folder listener to auto trigger &amp;ldquo;Add Contents&amp;rdquo; action&lt;/li&gt;
&lt;li&gt;Field validation for import and versioning manager properties files&lt;/li&gt;
&lt;li&gt;Usage metrics collection to better understand tool use&lt;/li&gt;
&lt;li&gt;Updated error log messages&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;ADM UI: Handle apostrophes in app name&lt;/li&gt;
&lt;li&gt;ZIP type validation for Automated Import Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="&amp;nbsp;september&amp;nbsp;2018_-_release_2.5.1"&gt;&amp;nbsp;September&amp;nbsp;2018 - Release 2.5.1&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;New buildMultipleApps action&lt;/li&gt;
&lt;li class="li1"&gt;Check version of tools with -v or -version flags&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed ADM SQL errors with non-null statements and forward slash as delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.5.0"&gt;August&amp;nbsp;2018 - Release 2.5.0&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added Flyway DB version control tool to command line and AIM GUI&lt;/li&gt;
&lt;li class="li1"&gt;Allow import of DDL scripts or Flyway scripts without an application zip or patch zip&lt;/li&gt;
&lt;li class="li1"&gt;Added Folder Listener script that will run addContents automatically when a file is dropped into a folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added buildAllApps to list of approved actions&lt;/li&gt;
&lt;li class="li1"&gt;Set inspect_only properly in AIM&lt;/li&gt;
&lt;li class="li1"&gt;Fixed bug where repo would be cloned into a folder with an incorrect name&lt;/li&gt;
&lt;li class="li1"&gt;Passed in correct authentication token for buildAllApps and buildSingleApp&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.4.7"&gt;August&amp;nbsp;2018 - Release 2.4.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added &amp;quot;buildSingleApp&amp;quot; action to extract one app from multi app repo&lt;/li&gt;
&lt;li class="li1"&gt;Renamed &amp;quot;buildPackage&amp;quot; action to &amp;quot;buildAllApps&amp;quot; to better clarify the functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed miscellaneous issues with parsing SQL in DDL file&lt;/li&gt;
&lt;li class="li1"&gt;Mark/reset issue with large customization files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june&amp;nbsp;2018_-_release_2.4.6"&gt;June&amp;nbsp;2018 - Release 2.4.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added an import-manager.properties file to set default values for importing applications&lt;/li&gt;
&lt;li&gt;Automated versioning manager supports adding a package with multiple patches&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Application version UUID is updated when adding patches to a version control&lt;/li&gt;
&lt;li&gt;Import no longer fails when SQL in DDL file contains a &amp;quot;;&amp;quot;, &amp;quot;&amp;ndash;&amp;quot; or &amp;quot;/**/&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2018_-_release_2.4.5"&gt;March 2018 - Release 2.4.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add support for proxy configuration in the deployment client script with parameters &amp;quot;proxy_port&amp;quot; and &amp;quot;proxy_url&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2018_-_release_2.4.4"&gt;January&amp;nbsp;2018 - Release 2.4.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2018_-_release_2.4.3"&gt;January 2018 - Release 2.4.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.4&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2017_-_release_2.4.2"&gt;September 2017 - Release 2.4.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.3&lt;/li&gt;
&lt;li&gt;Better handling of end of line characters in the SQL scripts&lt;/li&gt;
&lt;li&gt;Support for customization file when deploying an application package&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2017_-_release_2.4.1"&gt;June 2017 - Release 2.4.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.2&lt;/li&gt;
&lt;li&gt;Fix defect preventing to execute DB scripts as part of a deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2017_-_release_2.4.0"&gt;January 2017 - Release 2.4.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.1&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october_2016_-_release_2.3"&gt;October 2016 - Release 2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 16.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.9"&gt;September 2016 - Release 2.2.9&lt;/h3&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Successfully deploy application packages containing new Datastore entities and new dependents on these entities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.8"&gt;September 2016 - Release 2.2.8&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with missing artifacts in package when using START_HASH and END_HASH.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.7"&gt;August 2016 - Release 2.2.7&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing updated Documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.6"&gt;August 2016 - Release 2.2.6&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New parameter no_update to build a package from the local repository without first performing a checkout&lt;/li&gt;
&lt;li&gt;New integrity control when checking in applications and patches&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.5"&gt;August 2016 - Release 2.2.5&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing new CDTs and updated CDTs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.4"&gt;June 2016 - Release 2.2.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.3"&gt;June 2016 - Release 2.2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Include the source code in all modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.2"&gt;June 2016 - Release 2.2.2&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new parameter appian_objects_repo_path to specify where the Appian artifacts are located in the repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="may_2016_-_release_2.2.0"&gt;May 2016 - Release 2.2.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for admin console packages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed update-database-schema to support native product capability of automatic database updates via datastore and administration console.&lt;/li&gt;
&lt;li&gt;Updated Web Browser UI style&lt;/li&gt;
&lt;li&gt;Removed option for &amp;quot;Automatically update the database schema when publishing the data stores&amp;quot; from the Web Browser UI&lt;/li&gt;
&lt;li&gt;Added support for admin console deployments&lt;/li&gt;
&lt;li&gt;Added support in command line for inspect_only parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2016_-_release_2.1.0"&gt;March 2016 - Release 2.1.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for input flexibility. Now, the command line for versioning manager supports all possible parameters.&lt;/li&gt;
&lt;li&gt;Allowed tags as inputs to start hash and end hash.&lt;/li&gt;
&lt;li&gt;Added inputs of the following predefined keywords: FIRST_COMMIT (which maps to first commit ever made) and LAST_COMMIT (the previous commit). NOTE: this is only allowed on the start hash input.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for 16.1.&lt;/li&gt;
&lt;li&gt;Added action for &amp;quot;Inspect Only&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment Automation</title><link>https://community.appian.com/success/w/guide/3328/deployment-automation/revision/3</link><pubDate>Thu, 26 Oct 2023 18:13:22 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43c6339b-3b7e-4b44-ba4b-4a8c46753052</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3328/deployment-automation#comments</comments><description>Revision 3 posted to Guide by joel.larin on 10/26/2023 6:13:22 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian provides several DevOps tools to automate the &lt;a href="https://docs.appian.com/suite/help/latest/devops-with-appian.html#deploy" rel="noopener noreferrer" target="_blank"&gt;deployment of Appian applications&lt;/a&gt; such as Compare &amp;amp; Deploy and Deployment APIs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://docs.appian.com/suite/help/latest/Deploy_to_Target_Environments.html#prodlink-external-deployment-apis"&gt;Deployment APIs&lt;/a&gt; offer a set of API&amp;nbsp;endpoints that allow you to inspect and deploy applications, packages, import customization files, plug-ins, and execute database scripts.&amp;nbsp;These APIs allow you to programmatically trigger deployments and integrate your Appian release into an automated pipeline. You can set up your pipeline once and run it the exact same way for all future deployments, saving time and avoiding manual errors. It is recommended to use the Deployment APIs whenever possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The tools described in this play offer a few alternatives to Appian base product features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tightly integrate with a version control system to store and retrieve package files using the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Automated Versioning Manager (AVM)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Programmatically deploy Admin Console settings and applications using the &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) plug-in&lt;/a&gt;&amp;nbsp;and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Table Of Content&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Automated_Versioning_Manager"&gt;Automated Versioning Manager&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Summary1"&gt;Summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Features1"&gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Usage1"&gt;Usage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Script_Execution1"&gt;Script Execution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Script_Setup1"&gt;Using the Properties File&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Use_Cases1"&gt;Use Cases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Using_Subversion_as_Version_Control_System"&gt;Using Subversion as Version Control System&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Using_Git_as_Version_Control_System"&gt;Using Git as Version Control System&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Automated_Import_Manager"&gt;Automated Import Manager&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Summary2"&gt;Summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Features2"&gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Usage2"&gt;Usage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Deploy_from_the_Web_Browser_UI"&gt;Deploy from the Web Browser UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Deploy_from_the_Command_Line_Script"&gt;Deploy from the Command Line Script&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Deploy_from_an_External_Continuous_Integration_Tool"&gt;Deploy from an External Continuous Integration Tool&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Troubleshooting"&gt;Troubleshooting&lt;/a&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Release_Notes"&gt;Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="automated_versioning_manager"&gt;Automated Versioning Manager&lt;/h2&gt;
&lt;h3 id="summary"&gt;Summary&lt;/h3&gt;
&lt;p&gt;The Automated Versioning Manager - available on the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt; - is a tool that helps managing Appian applications and database DDL files in a version control system. Given an Appian application ZIP file, the Automated Versioning Manager performs the following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;It unzips the application and organizes the artifact XML files in the repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It automates the check-in and checkout operations with the version control system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It generates application packages for import in Appian based on the contents of the repository and a range of changes to include.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal of this tool is to facilitate the adoption and usage of a version control system to perform configuration management of the Appian applications and database DDL files.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/1374.deployment_5F00_automation_5F00_00.png" /&gt;&lt;/div&gt;
&lt;h2 id="_features"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Version Control integration (Git, SVN)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supports Appian applications and patches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate import package from hash ranges&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Folder Listener to add contents to Version Control&lt;/li&gt;
&lt;li&gt;Supports GitHub, GitLab, and BitBucket for Version Control&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_usage"&gt;Usage&lt;/h2&gt;
&lt;p&gt;The automated versioning tool is a script to be run from the command line or terminal. It contains a wrapper for Windows (version-application.bat) and Linux (version-application.sh) systems. This document will first discuss how to use the tool in general, and then discuss use cases to give concrete examples. All parameters can be passed either on the command line or in the properties file.&lt;/p&gt;
&lt;h3 id="script-execution"&gt;Script Execution&lt;/h3&gt;
&lt;p&gt;To run the script, open a command window and navigate to the directory where the automated versioning scripts are located. They are named version-application.bat or version-application.sh.&lt;/p&gt;
&lt;p&gt;Use the -h or -help parameters to view the help menu within the script. The parameters are described here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Required Parameters (required for all four actions: addContents, buildAllApps, buildSingleApp, buildMultipleApps, and updateLocalRepo)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-action - Selects which action of the script to run. Acceptable values are: addContents, updateLocalRepo, buildAllApps,&amp;nbsp;buildSingleApp, and&amp;nbsp;buildMultipleApps. Each action is detailed in the use cases below.&lt;/li&gt;
&lt;li&gt;-vc_username -The username associated with the version control (Git or SVN) account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-vc_password -Please check the Security Settings of the version control account. If you have 2-factor authentication enabled, the password requires the version control account token. If you do NOT have 2-factor authentication enabled, the password is the one associated with the version control account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for addContents action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-application_path - The path on your filesystem where the application ZIP is located.&lt;/li&gt;
&lt;li&gt;-admin_console_path - The path on your filesystem where the admin console ZIP file is located.&lt;/li&gt;
&lt;li&gt;-ddl_path - List of comma-separated paths for the DDL files to be included in the deployment package.&lt;/li&gt;
&lt;li&gt;-flyway_path&amp;nbsp;- List of comma-separated paths for the directories to execute DB migrations via Flyway.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;. To learn how&amp;nbsp;the Automated Import Manager&amp;nbsp;uses Flyway, refer to &lt;a href="#Features2"&gt;AIM Features&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-ddl_ds - List of comma-separated datasources associated with the provided DDL files. Must provide the same number of entries as number of DDL files specified with the -ddl_path option or number of directories specified with the -flyway_path option. &lt;strong&gt;NOTE: the order of the specified datasource names must match the order of the script paths specified.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-uuid - The UUID of the application to which the contents of the application should be added. This option is only used if deploying a patch application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- The&amp;nbsp;name of the application to which the contents of the application should be added. This option is only used if deploying a&amp;nbsp;patch&amp;nbsp;application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-commit_message - The message that will be associated with the commit. If not included, a default commit message Committed by @username is provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildAllApps&amp;nbsp;action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-start_hash - Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit. &lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash - End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildSingleApp action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid - The UUID of the application you want to build.&lt;/li&gt;
&lt;li&gt;-application_name - The name of the application you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildMultipleApps action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid&amp;nbsp;- Comma separated list of UUIDs of the applications you want to build.&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- Comma separated list of names of the applications that you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update&amp;nbsp;- Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for updateLocalRepo action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are no additional options (other than required options) for updateLocalRepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Additional Parameters&lt;/strong&gt; - These parameters are REQUIRED, and may be specified here or in the properties file (described in the following section). If they are specified in both locations, the parameters specified in the command line take precedence.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-version_control_type - The version control type used, either GIT or SVN.&lt;/li&gt;
&lt;li&gt;-local_repo_path - The path on the filesystem where the local repository is located. All files on the remote repository are cloned to this path. Example: C:\\MyFiles\\ChangeManagementRepo. &lt;strong&gt;NOTE: if using Windows, be sure to include double forward slashes (as seen in the example) for path separation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-appian_objects_repo_path - Path to the folder containing the Appian objects in the repository. This path is relative to the path of the local repository. If not specified, the Appian objects are checked out to and committed from the root of the local repository path.&lt;/li&gt;
&lt;li&gt;-repo_url - The URL that defines the remote repository. Example: https://github.com/git-username/project-name.git, svn+ssh://svn.code.sf.net/p/project-name/code&lt;/li&gt;
&lt;li&gt;-package_path - &lt;em&gt;For buildAllApps,&amp;nbsp;&lt;em&gt;buildSingleApp, and&amp;nbsp;&lt;em&gt;&lt;em&gt;buildMultipleApps&lt;/em&gt;&lt;/em&gt;&amp;nbsp;&lt;/em&gt;only.&lt;/em&gt; The path on the filesystem where packages are generated. Must include filename of package.&lt;/li&gt;
&lt;li&gt;-branch_name - Branch to check out and use (if not master)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="configuring-using-the-properties-file"&gt;Configuring using the Properties File&lt;/h3&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the configuration file version-manager.properties. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;In case an option is specified both on the command line and in the properties file, the command line value takes precedence and is used.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false &amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;p&gt;If used, the property&amp;nbsp;&lt;code&gt;appianObjectRepoPath&lt;/code&gt;&amp;nbsp;must not reference a file path more than one level below the root directory of the repository. Ex.&amp;nbsp;appianObjectRepoPath =&amp;nbsp;/appian/objects&amp;nbsp;is an acceptable configuration but&amp;nbsp;appianObjectRepoPath = /appian/folder/objects is not valid.&lt;/p&gt;
&lt;h3 id="use-cases"&gt;Use Cases&lt;/h3&gt;
&lt;h4 id="1-new-developer-joins-team-updatelocalrepo"&gt;#1: New developer joins team (updateLocalRepo)&lt;/h4&gt;
&lt;p&gt;In this use case, a new developer has joined the team and wants to get a copy of all the work completed so far. The developer:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Update version-manager.properties with the appropriate fields. See the &lt;a href="#Script_Setup1"&gt;Script Setup&lt;/a&gt; section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;updateLocalRepo&lt;/strong&gt; as the action flag. The developer must provide the username and password for authenticating against their version control system (-vc_username, -vc_password).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action updateLocalRepo -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, the developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;h4 id="2-developer-adds-artifacts-to-the-repository-addcontents"&gt;#2: Developer adds artifacts to the repository (addContents)&lt;/h4&gt;
&lt;p&gt;In this use case, the developer on a team has been working in the development environment and has changes he wishes to add to the repository. The changes may be a new application or a patch to an existing application. Note: the repository serves as a record of changes, and can be thought of as an additional Appian environment. The steps involved are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the Appian development environment, create an application (or a patch) that contains the changed objects.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Export those changes and download the application ZIP file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;addContents&lt;/strong&gt; as the action flag. The developer must provide the path of the ZIP file they exported (-application_path) from Appian in step 2. They must also provide the username and password for authenticating their version control system (-vc_username, -vc_password). &lt;strong&gt;NOTE: these are NOT Appian credentials.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Optional: if the application specified for -application_path is a patch, update the -uuid option to specify the parent application&amp;rsquo;s uuid. &lt;em&gt;The script will exit with error if a patch application ZIP is provided but no uuid is passed in.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Optional: if DDL scripts have been modified, specify the path(s) and their associated JDBC datasource names. NOTE: The same number of DDL scripts and datasource names must be entered into the script, even if the datasource is the same for all scripts. For example: the developer wishes to add two ddl scripts located at C:\DDLs\script1.sql and C:\DDLs\script2.sql. They do so by setting the -ddl_path option as C:\DDLs\script1.sql,C:\DDLs\script2.sql If both scripts are to be executed on jdbc/AppianDS, they must set the -ddl_ds option as jdbc/AppianDS,jdbc/AppianDS. Note that the datasource name is passed in &lt;strong&gt;&lt;em&gt;twice&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: include a custom commit message using the -commit_message option&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="caution"&gt;WARNING: It is HIGHLY recommended that DDL scripts are developed INCREMENTALLY. That is, do not modify existing DDL scripts - instead, create new scripts that only contain the commands the designer wishes to execute.This is because if the designer updates an existing DDL script, all lines in the script will be executed. This can lead to data integrity issues if not managed properly. PLEASE EXERCISE CAUTION WHEN MODIFYING EXISTING DDL SCRIPTS. Example: if the designer modifies a script that contains commands to drop and recreate a table, the script will drop and recreate the table even if the designer did not modify that section.&lt;/div&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action addContents -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -application_path &amp;quot;C:\App.zip&amp;quot; -ddl_ds jdbc/AppianAnywhere -ddl_path “C:\script1.sql” -commit_message “Adding account executive record”&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When the script is executed, three things occur:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The application ZIP is unzipped and placed into the local repository, and the DDL files are placed into a ddl_files folder within the local repository. If the -uuid option is selected, the appropriate application xml file is updated.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The changes are committed (and pushed, if using Git) to the remote repository.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When the package is imported into Appian, all lines within script1.sql will be executed and contents within the application ZIP are imported.&lt;/p&gt;
&lt;p&gt;Using Folder Listener:&lt;/p&gt;
&lt;p&gt;Alternatively, instead of running the script, the developer can execute&amp;nbsp;avm-folder-listener-&amp;lt;os&amp;gt;&amp;nbsp;in the&amp;nbsp;folder-listener&amp;nbsp;directory. The following command prompt will appear:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x960/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png" /&gt;&lt;/div&gt;
&lt;p&gt;The developer will provide the directory that the application or patch ZIPs will be dropped into as well as the directory of the automated versioning manager tool. Otherwise, the default directories will be used.&lt;/p&gt;
&lt;p&gt;Once setup, the developer can drag the desired application ZIP into the specified directory and the application ZIP will be versioned in their GIT repository. This is assuming that all necessary fields have already been configured in the file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;p&gt;If the developer is supplying a patch ZIP, the console will prompt the developer for the associated application uuid or name. Once supplied, the patch will be deployed to the specified environment in the&amp;nbsp;file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;h4 id="3-build-master-generates-new-rc-deployment-package-buildpackage"&gt;#3: Build master generates new RC deployment package (buildAllApps)&lt;/h4&gt;
&lt;p&gt;In this use case, all additions made by the team have been incorporated into the remote repository and have gone through sufficient testing. The build master is now ready to promote a new package to the higher environment. The new package should include all additions and changes since the last deployment. The build master will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;(If not done previously) Update version-manager.properties with the appropriate fields. See the Script Setup section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;buildAllApps&lt;/strong&gt; as the action flag. The build master must provide the username and password for authenticating against their version control system (-vc_username, -vc_password). To get a specific set of changes, input a value for the -start_hash option and the -end_hash option. This will generate the package with all new and changed files between the two hash options.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;NOTE: the package will &lt;strong&gt;NOT&lt;/strong&gt; include the changes introduced in the start hash, but &lt;strong&gt;WILL&lt;/strong&gt; include changes introduced in the end hash.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Command:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action buildAllApps -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -start_hash ac37459 -end_hash 6e83b42&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, it generates a package at the location specified by the packagePath field in version-manager.properties.&lt;/p&gt;
&lt;p&gt;Finally, the build master will import the RC package into the higher environment using the Automated Import tool as described later in this play.&lt;/p&gt;
&lt;h2 id="_using_subversion_as_version_control_system"&gt;Using Subversion as Version Control System&lt;/h2&gt;
&lt;p&gt;To allow the Automated Versioning Manager to perform the checkout and commit operations with Subversion, the tool assumes the common Subversion project structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;trunk&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;branches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tags&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The location of the repository root must be provided by the property repoURL.&lt;/p&gt;
&lt;p&gt;Example: The following version-manager.properties configuration checks out the release 1 branch from the repository located at &lt;a href="https://svn.code.sf.net/p/deploymentautomationexample/code"&gt;https://svn.code.sf.net/p/deploymentautomationexample/code&lt;/a&gt; and commit all changes to the branch &amp;quot;release1&amp;quot;. Optionally, you may specify each of these parameters as command line arguments instead of using the version-manager.properties file.&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=SVN

repoUrl=https://svn.code.sf.net/p/deploymentautomationexample/code

branchName=branches/release1&lt;/pre&gt;&lt;/pre&gt;
&lt;h2 id="_using_git_as_version_control_system"&gt;Using Git as Version Control System&lt;/h2&gt;
&lt;p&gt;To use Git with the Automated Versioning Manager, properties may be specified on the command line or version-manager.properties should be updated as follows:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=GIT

repoUrl=https://github.com/gituser/testgitrepo.git

branchName=newbranch&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;branchName is an optional field. If the branch does not exist remotely, the tool will automatically create it on the local machine and push it to the remote repository as soon as addContents is executed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: if you are planning to check out a private repository, use the Git SSH URL rather than the HTTPS URL.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="_automated_import_manager"&gt;Automated Import Manager&lt;/h2&gt;
&lt;h2 id="_summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;With the Cloud-approved Appian &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager plug-in&lt;/a&gt; and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager client&lt;/a&gt;&amp;nbsp;available on the AppMarket, users can automatically deploy applications and patch contents (either applications from Appian OR packages generated from the &lt;a href="#Automated_Versioning_Manager"&gt;Automated Versioning Manager&lt;/a&gt;) to any environment. Users will have three options for deployment: the tool can either deploy from the tool&amp;rsquo;s user interface in one click, trigger the deployment from an external CI tool, or deploy from the command line.&lt;/p&gt;
&lt;p&gt;The Automated Import Manager automates the process of inspecting the application, executing DDL scripts, &lt;strong&gt;updating CDTs, republishing the appropriate datastores&lt;/strong&gt;, and importing the application.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4011.deployment_5F00_automation_5F00_02.png" /&gt;&lt;/div&gt;
&lt;h2 id="features_"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect Application:&lt;/strong&gt; This tool will automatically mimic the &amp;quot;Inspect&amp;quot; functionality that exists within Appian&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Validating Application Content:&lt;/strong&gt; In addition to inspecting the application, the tool will ensure all CDT dependents are included to avoid objects pointing to older versions.&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute DDL Scripts:&lt;/strong&gt; DDL scripts can be uploaded and automatically executed. NOTE: For Microsoft SQL Server, only Transact-SQL statements are valid.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute Migrations with Flyway:&amp;nbsp;&lt;/strong&gt;Flyway is a tool used for managing database migrations. It makes it easier to track SQL script versions and not re-execute SQL scripts that have already been run. If a Flyway&amp;nbsp;directory is provided, the Automated Import Manager will automatically&amp;nbsp;execute migrations against the corresponding datasource.&amp;nbsp;Learn more about Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/getstarted/how"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Update CDTs:&lt;/strong&gt; Users are no longer required to delete CDTs before updating them, this tool will perform this step automatically&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import Application and admin console configuration:&lt;/strong&gt; Automatically import an application with an optional customization file&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Republish Datastores:&lt;/strong&gt; After application import, datastores will be automatically published or republished&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add Patches:&lt;/strong&gt; Automatically add patch contents to a specified existing application&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="usage_"&gt;Usage&lt;/h2&gt;
&lt;h3 id="1-deploy-from-the-web-browser-ui"&gt;&amp;nbsp;Deploy from the Web Browser UI&lt;/h3&gt;
&lt;p&gt;The tool collects usage metrics by default. To opt-out of metrics collection, check the below option on the Web Browser UI:&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1600x480/__key/communityserver-wikis-components-files/00-00-00-00-46/0702.pastedimage1539370754100v1.png" /&gt;&lt;/div&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/796x1133/__key/communityserver-wikis-components-files/00-00-00-00-46/4186.Screen-Shot-2018_2D00_08_2D00_30-at-3.22.31-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Log into Appian as a system administrator&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the Deployment Automation UI available at the URL: &amp;lt;appian&amp;gt;/suite/plugins/servlet/deploymentautomation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Upload the patch or application you wish to import.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If this application is a patch, select the parent application to which patch contents should be added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the new application requires changes to the database schema (i.e. new or updated CDTs) you must choose one of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upload the corresponding DDL script(s) that accurately reflect these additions and/or updates.&lt;/li&gt;
&lt;li&gt;Set the datastore to &amp;quot;Automatically update database schema&amp;quot; and set &amp;quot;Allow Database Schema Changes Through Data Stores&amp;quot; in the Deployment section of the Appian Administration Console&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click on the button &amp;quot;Start Deployment&amp;quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;During the deployment, the screen is automatically refreshed every 5 seconds with the latest status of the deployment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the deployment is complete, the browser will update with a status page.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8228.deployment_5F00_automation_5F00_04.png" /&gt;&lt;/div&gt;
&lt;h3 id="2-deploy-from-the-command-line-script"&gt;&amp;nbsp;Deploy from the Command Line Script&lt;/h3&gt;
&lt;p&gt;The command line script - the client - can be downloaded from the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false&amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x2000/__key/communityserver-wikis-components-files/00-00-00-00-46/7723.Screen-Shot-2018_2D00_08_2D00_30-at-3.29.54-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open a command window in the same folder to which the client script and supporting libraries were unzipped.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the help guide pictured above, run the proper command to automatically import the application. Use -h or -help to view this menu at any time.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;-ac_customization_path: Indicates the path to the customization file to use when deploying the admin console&amp;nbsp;package or the application package.&lt;/li&gt;
&lt;li&gt;-admin_console_path: Indicates the path to the admin console file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-application_path: Indicates the path to the application file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-ddl_ds: Optional, use only if providing DDL scripts. The name of the datasource to use with the corresponding DDL script. Use a comma separator to enter multiple datasources.&lt;/li&gt;
&lt;li&gt;-ddl_path: Optional, use only if providing DDL scripts. Indicates the path to the DDL scripts to execute. Use a comma separator to enter multiple DDL script paths. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-flyway_path: Optional, use only if providing directories to execute DB migrations via Flyway. Use a comma separator to enter multiple directory paths. NOTE: Use quotations around the entry.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-force_import: A boolean flag which specifies whether or not the import ignores impact analysis results.If true, the import will occur even if objects with CDT references are missing&lt;/li&gt;
&lt;li&gt;-import_customization_path: Indicates the path to the import customization file to use&lt;/li&gt;
&lt;li&gt;-inspect_only: Optional, use to run an inspection of the package. Indicates the package should not be deployed but inspected only.&lt;/li&gt;
&lt;li&gt;-password: Password of the Appian user account&lt;/li&gt;
&lt;li&gt;-proxy_port: Optional, port of the proxy server to use to connect to Appian. This parameter is only used if the parameter -proxy_url is defined. The default value is 8080.&lt;/li&gt;
&lt;li&gt;-proxy_url: Optional, URL of the proxy to use to connect to Appian.&lt;/li&gt;
&lt;li&gt;-url: URL of the environment, of the format &lt;a href="http://example.appian.com/suite"&gt;https://example.appian.com/suite&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-username: Username of the Appian user account to use for deployment&lt;/li&gt;
&lt;li&gt;-uuid: UUID of the application to which patch contents will be added&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy the application by typing the command deploy-application.bat and including the relevant parameters. Your command will look something like the one pictured below.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;deploy-application.bat -application_path &amp;quot;PATH TO APPLICATION ZIP&amp;quot; -username SERVICE_ACCOUNT_USERNAME -password SERVICE_ACCOUNT_PASSWORD -url APPIAN_URL -ddl_path &amp;quot;PATH TO DLL 1, PATH TO DLL 2&amp;quot; -ddl_ds jdbc/Appian1,jdbc/Appian2&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the &lt;strong&gt;configuration file&amp;nbsp;import-manager.properties&lt;/strong&gt;. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;During the deployment, the prompt is automatically refreshed every 5 seconds with the latest status of the deployment. When the deployment is complete, a status response (like the one pictured below) will display.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6746.deployment_5F00_automation_5F00_06.png" /&gt;&lt;/div&gt;
&lt;h3 id="3-deploy-from-an-external-continuous-integration-tool"&gt;Deploy from an External Continuous Integration tool&lt;/h3&gt;
&lt;p&gt;Additional Requirement:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An existing external Continuous Integration tool (such as Jenkins or Hudson) that is properly configured&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The steps below provide the high level steps to deploy an application from Jenkins.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new external job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the job to run the import script using the guidance in Deployment Option #2 listed above&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute the job&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8132.deployment_5F00_automation_5F00_07.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;When the deployment is complete, check the status page verify that the import was successful.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/5078.deployment_5F00_automation_5F00_08.png" /&gt;&lt;/div&gt;
&lt;h2 id="_troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;h2 id="deciphering_script_error_messages"&gt;Deciphering Script Error Messages&lt;/h2&gt;
&lt;h3 id="inspect-failure"&gt;Inspect Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails on inspect, please check the error log and inspect log to determine the root cause of the inspect error. Additionally, please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Inspect_Package.html"&gt;Inspect Package&lt;/a&gt; documentation to determine what common inspect issues may arise.&lt;/p&gt;
&lt;h3 id="package-validation-failure"&gt;Package Validation Failure&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;This feature is only for Appian 7.11 and above.&lt;/strong&gt; If the Automated Import script fails during package validation, this means that objects with certain CDT dependencies are missing. Please check the error message which will include the list of missing required dependencies. Appian recommends to include these dependencies in the application prior to importing.&lt;/p&gt;
&lt;p&gt;In case you want to proceed with deploying the application regardless of missing CDT dependencies, use the flag -f.&lt;/p&gt;
&lt;h3 id="import-failure"&gt;Import Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails during import, it will produce an error log that contains the reason(s) for import failure. Please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Application_Deployment_Guidelines.html#Issues_During_Export_or_Import"&gt;Application Deployment Guidelines&lt;/a&gt; documentation on import issues to determine the root cause of the import failure.&lt;/p&gt;
&lt;h3 id="invalid-credentials"&gt;Invalid Credentials&lt;/h3&gt;
&lt;p&gt;Please ensure that these credentials are associated with an active Appian system administrator account. Basic user credentials cannot be used.&lt;/p&gt;
&lt;h3 id="connection-refused-with-deployment-command-line-script"&gt;Connection Refused With Deployment Command Line Script&lt;/h3&gt;
&lt;p&gt;A &amp;quot;Connection Refused&amp;quot; error could be the result of using the wrong URL when executing the script. The URL provided as a parameter must:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;include the suffix &amp;quot;/suite&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include a port number if not using the port 80 with HTTP or port 443 with HTTPS&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="release_notes"&gt;Release Notes&lt;/h2&gt;
&lt;h3 id="september&amp;nbsp;2021_-_release_2.5.13"&gt;September&amp;nbsp;2021 - Release 2.5.13&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed an issue where setting &amp;quot;appianObjectsRepoPath&amp;quot; prevented a package that included a patches.xml file from being processed successfully&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2021_-_release_2.5.12"&gt;March&amp;nbsp;2021 - Release 2.5.12&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Updated the link to the import log in the ADM servlet after a change was made to the Appian API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed a bug that was preventing Flyway files from being included in metadata.properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september&amp;nbsp;2020_-_release_2.5.11"&gt;September&amp;nbsp;2020 - Release 2.5.11&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Upgraded Flyway version to 6.5.5 for compatibility with MariaDB.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2020_-_release_2.5.10"&gt;August&amp;nbsp;2020 - Release 2.5.10&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added the ability to dynamically generate the Metadata file for the &amp;quot;buildAllApps&amp;quot; action to reflect only the list of database scripts that are included in the package for a given commit range.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li class="li1"&gt;Fixed the interpretation of &amp;quot;appianObjectsRepoPath&amp;quot; on Windows platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="december&amp;nbsp;2019&amp;nbsp;-_release_2.5.9"&gt;December&amp;nbsp;2019&amp;nbsp;- Release 2.5.9&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added DNS proxy support to ADM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AIM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AVM&lt;/li&gt;
&lt;li class="li1"&gt;Added support for special characters in passwords in ADM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="july&amp;nbsp;2019&amp;nbsp;-_release_2.5.8"&gt;July&amp;nbsp;2019&amp;nbsp;- Release 2.5.8&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;Fixed the problem with obtaining TransactionManager and creating DataConfiguration against latest the Appian version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april&amp;nbsp;2019&amp;nbsp;-_release_2.5.7"&gt;April&amp;nbsp;2019&amp;nbsp;- Release 2.5.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added commit message prompt to folder listener&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed Windows issue with pushing file updates to versioning manager&lt;/li&gt;
&lt;li class="li1"&gt;Fixed import patch failure not adding newly created objects issue&lt;/li&gt;
&lt;li class="li1"&gt;Fixed semicolon separator parsing issue&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march&amp;nbsp;2019_-_release_2.5.6"&gt;March&amp;nbsp;2019 - Release 2.5.6&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added proxy authentication support for import client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="february&amp;nbsp;2019_-_release_2.5.5"&gt;February&amp;nbsp;2019 - Release 2.5.5&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed DDL paths bug&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2019_-_release_2.5.4"&gt;January&amp;nbsp;2019 - Release 2.5.4&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Improved descriptions of errors encountered during deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed &amp;quot;Connection Refused&amp;quot; bug when running on a Jenkins server&lt;/li&gt;
&lt;li&gt;Fixed &amp;quot;buildSingleApp&amp;quot; AVM bug when specifying an appianObjectsRepoPath&lt;/li&gt;
&lt;li&gt;Fixed rare &amp;quot;hanging&amp;quot; bug in AIM Client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="november&amp;nbsp;2018_-_release_2.5.3"&gt;November&amp;nbsp;2018 - Release 2.5.3&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Created a reset command for Remote Automated Deployment Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Version and Import Metrics Logger Initialized correctly to fix null pointer exception&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october&amp;nbsp;2018_-_release_2.5.2"&gt;October&amp;nbsp;2018 - Release 2.5.2&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li&gt;Folder listener to auto trigger &amp;ldquo;Add Contents&amp;rdquo; action&lt;/li&gt;
&lt;li&gt;Field validation for import and versioning manager properties files&lt;/li&gt;
&lt;li&gt;Usage metrics collection to better understand tool use&lt;/li&gt;
&lt;li&gt;Updated error log messages&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;ADM UI: Handle apostrophes in app name&lt;/li&gt;
&lt;li&gt;ZIP type validation for Automated Import Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="&amp;nbsp;september&amp;nbsp;2018_-_release_2.5.1"&gt;&amp;nbsp;September&amp;nbsp;2018 - Release 2.5.1&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;New buildMultipleApps action&lt;/li&gt;
&lt;li class="li1"&gt;Check version of tools with -v or -version flags&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed ADM SQL errors with non-null statements and forward slash as delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.5.0"&gt;August&amp;nbsp;2018 - Release 2.5.0&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added Flyway DB version control tool to command line and AIM GUI&lt;/li&gt;
&lt;li class="li1"&gt;Allow import of DDL scripts or Flyway scripts without an application zip or patch zip&lt;/li&gt;
&lt;li class="li1"&gt;Added Folder Listener script that will run addContents automatically when a file is dropped into a folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added buildAllApps to list of approved actions&lt;/li&gt;
&lt;li class="li1"&gt;Set inspect_only properly in AIM&lt;/li&gt;
&lt;li class="li1"&gt;Fixed bug where repo would be cloned into a folder with an incorrect name&lt;/li&gt;
&lt;li class="li1"&gt;Passed in correct authentication token for buildAllApps and buildSingleApp&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august&amp;nbsp;2018_-_release_2.4.7"&gt;August&amp;nbsp;2018 - Release 2.4.7&lt;/h3&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added &amp;quot;buildSingleApp&amp;quot; action to extract one app from multi app repo&lt;/li&gt;
&lt;li class="li1"&gt;Renamed &amp;quot;buildPackage&amp;quot; action to &amp;quot;buildAllApps&amp;quot; to better clarify the functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed miscellaneous issues with parsing SQL in DDL file&lt;/li&gt;
&lt;li class="li1"&gt;Mark/reset issue with large customization files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june&amp;nbsp;2018_-_release_2.4.6"&gt;June&amp;nbsp;2018 - Release 2.4.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added an import-manager.properties file to set default values for importing applications&lt;/li&gt;
&lt;li&gt;Automated versioning manager supports adding a package with multiple patches&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Application version UUID is updated when adding patches to a version control&lt;/li&gt;
&lt;li&gt;Import no longer fails when SQL in DDL file contains a &amp;quot;;&amp;quot;, &amp;quot;&amp;ndash;&amp;quot; or &amp;quot;/**/&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2018_-_release_2.4.5"&gt;March 2018 - Release 2.4.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add support for proxy configuration in the deployment client script with parameters &amp;quot;proxy_port&amp;quot; and &amp;quot;proxy_url&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january&amp;nbsp;2018_-_release_2.4.4"&gt;January&amp;nbsp;2018 - Release 2.4.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2018_-_release_2.4.3"&gt;January 2018 - Release 2.4.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.4&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2017_-_release_2.4.2"&gt;September 2017 - Release 2.4.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.3&lt;/li&gt;
&lt;li&gt;Better handling of end of line characters in the SQL scripts&lt;/li&gt;
&lt;li&gt;Support for customization file when deploying an application package&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2017_-_release_2.4.1"&gt;June 2017 - Release 2.4.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.2&lt;/li&gt;
&lt;li&gt;Fix defect preventing to execute DB scripts as part of a deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january_2017_-_release_2.4.0"&gt;January 2017 - Release 2.4.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.1&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october_2016_-_release_2.3"&gt;October 2016 - Release 2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 16.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.9"&gt;September 2016 - Release 2.2.9&lt;/h3&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Successfully deploy application packages containing new Datastore entities and new dependents on these entities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september_2016_-_release_2.2.8"&gt;September 2016 - Release 2.2.8&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with missing artifacts in package when using START_HASH and END_HASH.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.7"&gt;August 2016 - Release 2.2.7&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing updated Documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.6"&gt;August 2016 - Release 2.2.6&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New parameter no_update to build a package from the local repository without first performing a checkout&lt;/li&gt;
&lt;li&gt;New integrity control when checking in applications and patches&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="august_2016_-_release_2.2.5"&gt;August 2016 - Release 2.2.5&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing new CDTs and updated CDTs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.4"&gt;June 2016 - Release 2.2.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.3"&gt;June 2016 - Release 2.2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Include the source code in all modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june_2016_-_release_2.2.2"&gt;June 2016 - Release 2.2.2&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new parameter appian_objects_repo_path to specify where the Appian artifacts are located in the repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="may_2016_-_release_2.2.0"&gt;May 2016 - Release 2.2.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for admin console packages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed update-database-schema to support native product capability of automatic database updates via datastore and administration console.&lt;/li&gt;
&lt;li&gt;Updated Web Browser UI style&lt;/li&gt;
&lt;li&gt;Removed option for &amp;quot;Automatically update the database schema when publishing the data stores&amp;quot; from the Web Browser UI&lt;/li&gt;
&lt;li&gt;Added support for admin console deployments&lt;/li&gt;
&lt;li&gt;Added support in command line for inspect_only parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march_2016_-_release_2.1.0"&gt;March 2016 - Release 2.1.0&lt;/h3&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for input flexibility. Now, the command line for versioning manager supports all possible parameters.&lt;/li&gt;
&lt;li&gt;Allowed tags as inputs to start hash and end hash.&lt;/li&gt;
&lt;li&gt;Added inputs of the following predefined keywords: FIRST_COMMIT (which maps to first commit ever made) and LAST_COMMIT (the previous commit). NOTE: this is only allowed on the start hash input.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for 16.1.&lt;/li&gt;
&lt;li&gt;Added action for &amp;quot;Inspect Only&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment Automation</title><link>https://community.appian.com/success/w/guide/3328/deployment-automation/revision/2</link><pubDate>Thu, 26 Oct 2023 18:08:30 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43c6339b-3b7e-4b44-ba4b-4a8c46753052</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3328/deployment-automation#comments</comments><description>Revision 2 posted to Guide by joel.larin on 10/26/2023 6:08:30 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian provides several DevOps tools to automate the &lt;a href="https://docs.appian.com/suite/help/latest/devops-with-appian.html#deploy" rel="noopener noreferrer" target="_blank"&gt;deployment of Appian applications&lt;/a&gt; such as Compare &amp;amp; Deploy and Deployment APIs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://docs.appian.com/suite/help/latest/Deploy_to_Target_Environments.html#prodlink-external-deployment-apis"&gt;Deployment APIs&lt;/a&gt; offer a set of API&amp;nbsp;endpoints that allow you to inspect and deploy applications, packages, import customization files, plug-ins, and execute database scripts.&amp;nbsp;These APIs allow you to programmatically trigger deployments and integrate your Appian release into an automated pipeline. You can set up your pipeline once and run it the exact same way for all future deployments, saving time and avoiding manual errors. It is recommended to use the Deployment APIs whenever possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The tools described in this play offer a few alternatives to Appian base product features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tightly integrate with a version control system to store and retrieve package files using the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Automated Versioning Manager (AVM)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Programmatically deploy Admin Console settings and applications using the &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) plug-in&lt;/a&gt;&amp;nbsp;and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager (AIM) client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Table Of Content&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Automated_Versioning_Manager"&gt;Automated Versioning Manager&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Summary1"&gt;Summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Features1"&gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Usage1"&gt;Usage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Script_Execution1"&gt;Script Execution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Script_Setup1"&gt;Using the Properties File&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Use_Cases1"&gt;Use Cases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Using_Subversion_as_Version_Control_System"&gt;Using Subversion as Version Control System&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Using_Git_as_Version_Control_System"&gt;Using Git as Version Control System&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Automated_Import_Manager"&gt;Automated Import Manager&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Summary2"&gt;Summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Features2"&gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Usage2"&gt;Usage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Deploy_from_the_Web_Browser_UI"&gt;Deploy from the Web Browser UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Deploy_from_the_Command_Line_Script"&gt;Deploy from the Command Line Script&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Deploy_from_an_External_Continuous_Integration_Tool"&gt;Deploy from an External Continuous Integration Tool&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Troubleshooting"&gt;Troubleshooting&lt;/a&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#Release_Notes"&gt;Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="automated_versioning_manager"&gt;Automated Versioning Manager&lt;/h2&gt;
&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;The Automated Versioning Manager - available on the &lt;a href="/b/appmarket/posts/automated-versioning-manager-avm" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt; - is a tool that helps managing Appian applications and database DDL files in a version control system. Given an Appian application ZIP file, the Automated Versioning Manager performs the following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;It unzips the application and organizes the artifact XML files in the repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It automates the check-in and checkout operations with the version control system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It generates application packages for import in Appian based on the contents of the repository and a range of changes to include.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal of this tool is to facilitate the adoption and usage of a version control system to perform configuration management of the Appian applications and database DDL files.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/1374.deployment_5F00_automation_5F00_00.png" /&gt;&lt;/div&gt;
&lt;h2 id="_features"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Version Control integration (Git, SVN)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supports Appian applications and patches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate import package from hash ranges&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Folder Listener to add contents to Version Control&lt;/li&gt;
&lt;li&gt;Supports GitHub, GitLab, and BitBucket for Version Control&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_usage"&gt;Usage&lt;/h2&gt;
&lt;p&gt;The automated versioning tool is a script to be run from the command line or terminal. It contains a wrapper for Windows (version-application.bat) and Linux (version-application.sh) systems. This document will first discuss how to use the tool in general, and then discuss use cases to give concrete examples. All parameters can be passed either on the command line or in the properties file.&lt;/p&gt;
&lt;h3 id="script-execution"&gt;Script Execution&lt;/h3&gt;
&lt;p&gt;To run the script, open a command window and navigate to the directory where the automated versioning scripts are located. They are named version-application.bat or version-application.sh.&lt;/p&gt;
&lt;p&gt;Use the -h or -help parameters to view the help menu within the script. The parameters are described here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Required Parameters (required for all four actions: addContents, buildAllApps, buildSingleApp, buildMultipleApps, and updateLocalRepo)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-action - Selects which action of the script to run. Acceptable values are: addContents, updateLocalRepo, buildAllApps,&amp;nbsp;buildSingleApp, and&amp;nbsp;buildMultipleApps. Each action is detailed in the use cases below.&lt;/li&gt;
&lt;li&gt;-vc_username -The username associated with the version control (Git or SVN) account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-vc_password -Please check the Security Settings of the version control account. If you have 2-factor authentication enabled, the password requires the version control account token. If you do NOT have 2-factor authentication enabled, the password is the one associated with the version control account. &lt;strong&gt;NOTE: these are NOT your Appian credentials.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for addContents action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-application_path - The path on your filesystem where the application ZIP is located.&lt;/li&gt;
&lt;li&gt;-admin_console_path - The path on your filesystem where the admin console ZIP file is located.&lt;/li&gt;
&lt;li&gt;-ddl_path - List of comma-separated paths for the DDL files to be included in the deployment package.&lt;/li&gt;
&lt;li&gt;-flyway_path&amp;nbsp;- List of comma-separated paths for the directories to execute DB migrations via Flyway.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;. To learn how&amp;nbsp;the Automated Import Manager&amp;nbsp;uses Flyway, refer to &lt;a href="#Features2"&gt;AIM Features&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-ddl_ds - List of comma-separated datasources associated with the provided DDL files. Must provide the same number of entries as number of DDL files specified with the -ddl_path option or number of directories specified with the -flyway_path option. &lt;strong&gt;NOTE: the order of the specified datasource names must match the order of the script paths specified.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-uuid - The UUID of the application to which the contents of the application should be added. This option is only used if deploying a patch application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- The&amp;nbsp;name of the application to which the contents of the application should be added. This option is only used if deploying a&amp;nbsp;patch&amp;nbsp;application (Appian 7.9+).&lt;/li&gt;
&lt;li&gt;-commit_message - The message that will be associated with the commit. If not included, a default commit message Committed by @username is provided.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildAllApps&amp;nbsp;action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-start_hash - Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit. &lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash - End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildSingleApp action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid - The UUID of the application you want to build.&lt;/li&gt;
&lt;li&gt;-application_name - The name of the application you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update - Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for buildMultipleApps action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-uuid&amp;nbsp;- Comma separated list of UUIDs of the applications you want to build.&lt;/li&gt;
&lt;li&gt;-application_name&amp;nbsp;- Comma separated list of names of the applications that you want to build.&lt;/li&gt;
&lt;li&gt;-start_hash&amp;nbsp;- Start hash or revision of the commit you want to start building the package. If not populated, the generated package will include all files starting from the earliest commit.&amp;nbsp;&lt;strong&gt;NOTE: the package will NOT include the changes introduced in the start hash, but WILL include changes introduced in the end hash.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-end_hash&amp;nbsp;- End hash or revision of the commit you want to end building the package. If this option is not populated, the generated package will include all files up to the latest commit.&lt;/li&gt;
&lt;li&gt;no_update&amp;nbsp;- Build a package from the local repository without first performing a checkout from a remote server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Options for updateLocalRepo action&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are no additional options (other than required options) for updateLocalRepo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Additional Parameters&lt;/strong&gt; - These parameters are REQUIRED, and may be specified here or in the properties file (described in the following section). If they are specified in both locations, the parameters specified in the command line take precedence.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-version_control_type - The version control type used, either GIT or SVN.&lt;/li&gt;
&lt;li&gt;-local_repo_path - The path on the filesystem where the local repository is located. All files on the remote repository are cloned to this path. Example: C:\\MyFiles\\ChangeManagementRepo. &lt;strong&gt;NOTE: if using Windows, be sure to include double forward slashes (as seen in the example) for path separation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;-appian_objects_repo_path - Path to the folder containing the Appian objects in the repository. This path is relative to the path of the local repository. If not specified, the Appian objects are checked out to and committed from the root of the local repository path.&lt;/li&gt;
&lt;li&gt;-repo_url - The URL that defines the remote repository. Example: https://github.com/git-username/project-name.git, svn+ssh://svn.code.sf.net/p/project-name/code&lt;/li&gt;
&lt;li&gt;-package_path - &lt;em&gt;For buildAllApps,&amp;nbsp;&lt;em&gt;buildSingleApp, and&amp;nbsp;&lt;em&gt;&lt;em&gt;buildMultipleApps&lt;/em&gt;&lt;/em&gt;&amp;nbsp;&lt;/em&gt;only.&lt;/em&gt; The path on the filesystem where packages are generated. Must include filename of package.&lt;/li&gt;
&lt;li&gt;-branch_name - Branch to check out and use (if not master)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="configuring-using-the-properties-file"&gt;Configuring using the Properties File&lt;/h3&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the configuration file version-manager.properties. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;In case an option is specified both on the command line and in the properties file, the command line value takes precedence and is used.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false &amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;p&gt;If used, the property&amp;nbsp;&lt;code&gt;appianObjectRepoPath&lt;/code&gt;&amp;nbsp;must not reference a file path more than one level below the root directory of the repository. Ex.&amp;nbsp;appianObjectRepoPath =&amp;nbsp;/appian/objects&amp;nbsp;is an acceptable configuration but&amp;nbsp;appianObjectRepoPath = /appian/folder/objects is not valid.&lt;/p&gt;
&lt;h3 id="use-cases"&gt;Use Cases&lt;/h3&gt;
&lt;h4 id="1-new-developer-joins-team-updatelocalrepo"&gt;#1: New developer joins team (updateLocalRepo)&lt;/h4&gt;
&lt;p&gt;In this use case, a new developer has joined the team and wants to get a copy of all the work completed so far. The developer:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Update version-manager.properties with the appropriate fields. See the &lt;a href="#Script_Setup1"&gt;Script Setup&lt;/a&gt; section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;updateLocalRepo&lt;/strong&gt; as the action flag. The developer must provide the username and password for authenticating against their version control system (-vc_username, -vc_password).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action updateLocalRepo -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, the developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;h4 id="2-developer-adds-artifacts-to-the-repository-addcontents"&gt;#2: Developer adds artifacts to the repository (addContents)&lt;/h4&gt;
&lt;p&gt;In this use case, the developer on a team has been working in the development environment and has changes he wishes to add to the repository. The changes may be a new application or a patch to an existing application. Note: the repository serves as a record of changes, and can be thought of as an additional Appian environment. The steps involved are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the Appian development environment, create an application (or a patch) that contains the changed objects.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Export those changes and download the application ZIP file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;addContents&lt;/strong&gt; as the action flag. The developer must provide the path of the ZIP file they exported (-application_path) from Appian in step 2. They must also provide the username and password for authenticating their version control system (-vc_username, -vc_password). &lt;strong&gt;NOTE: these are NOT Appian credentials.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Optional: if the application specified for -application_path is a patch, update the -uuid option to specify the parent application&amp;rsquo;s uuid. &lt;em&gt;The script will exit with error if a patch application ZIP is provided but no uuid is passed in.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Optional: if DDL scripts have been modified, specify the path(s) and their associated JDBC datasource names. NOTE: The same number of DDL scripts and datasource names must be entered into the script, even if the datasource is the same for all scripts. For example: the developer wishes to add two ddl scripts located at C:\DDLs\script1.sql and C:\DDLs\script2.sql. They do so by setting the -ddl_path option as C:\DDLs\script1.sql,C:\DDLs\script2.sql If both scripts are to be executed on jdbc/AppianDS, they must set the -ddl_ds option as jdbc/AppianDS,jdbc/AppianDS. Note that the datasource name is passed in &lt;strong&gt;&lt;em&gt;twice&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: include a custom commit message using the -commit_message option&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="caution"&gt;WARNING: It is HIGHLY recommended that DDL scripts are developed INCREMENTALLY. That is, do not modify existing DDL scripts - instead, create new scripts that only contain the commands the designer wishes to execute.This is because if the designer updates an existing DDL script, all lines in the script will be executed. This can lead to data integrity issues if not managed properly. PLEASE EXERCISE CAUTION WHEN MODIFYING EXISTING DDL SCRIPTS. Example: if the designer modifies a script that contains commands to drop and recreate a table, the script will drop and recreate the table even if the designer did not modify that section.&lt;/div&gt;
&lt;p&gt;Example Syntax:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action addContents -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -application_path &amp;quot;C:\App.zip&amp;quot; -ddl_ds jdbc/AppianAnywhere -ddl_path “C:\script1.sql” -commit_message “Adding account executive record”&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When the script is executed, three things occur:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The developer&amp;rsquo;s local repository is updated to include all changes other developers may have committed (pull in Git, update in SVN).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The application ZIP is unzipped and placed into the local repository, and the DDL files are placed into a ddl_files folder within the local repository. If the -uuid option is selected, the appropriate application xml file is updated.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The changes are committed (and pushed, if using Git) to the remote repository.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When the package is imported into Appian, all lines within script1.sql will be executed and contents within the application ZIP are imported.&lt;/p&gt;
&lt;p&gt;Using Folder Listener:&lt;/p&gt;
&lt;p&gt;Alternatively, instead of running the script, the developer can execute&amp;nbsp;avm-folder-listener-&amp;lt;os&amp;gt;&amp;nbsp;in the&amp;nbsp;folder-listener&amp;nbsp;directory. The following command prompt will appear:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x960/__key/communityserver-wikis-components-files/00-00-00-00-46/1778.avm_2D00_folder_2D00_listener_2D00_console_2D00_prompt.png" /&gt;&lt;/div&gt;
&lt;p&gt;The developer will provide the directory that the application or patch ZIPs will be dropped into as well as the directory of the automated versioning manager tool. Otherwise, the default directories will be used.&lt;/p&gt;
&lt;p&gt;Once setup, the developer can drag the desired application ZIP into the specified directory and the application ZIP will be versioned in their GIT repository. This is assuming that all necessary fields have already been configured in the file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;p&gt;If the developer is supplying a patch ZIP, the console will prompt the developer for the associated application uuid or name. Once supplied, the patch will be deployed to the specified environment in the&amp;nbsp;file&amp;nbsp;version-manager.properties.&lt;/p&gt;
&lt;h4 id="3-build-master-generates-new-rc-deployment-package-buildpackage"&gt;#3: Build master generates new RC deployment package (buildAllApps)&lt;/h4&gt;
&lt;p&gt;In this use case, all additions made by the team have been incorporated into the remote repository and have gone through sufficient testing. The build master is now ready to promote a new package to the higher environment. The new package should include all additions and changes since the last deployment. The build master will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;(If not done previously) Update version-manager.properties with the appropriate fields. See the Script Setup section for details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the script, using &lt;strong&gt;buildAllApps&lt;/strong&gt; as the action flag. The build master must provide the username and password for authenticating against their version control system (-vc_username, -vc_password). To get a specific set of changes, input a value for the -start_hash option and the -end_hash option. This will generate the package with all new and changed files between the two hash options.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;NOTE: the package will &lt;strong&gt;NOT&lt;/strong&gt; include the changes introduced in the start hash, but &lt;strong&gt;WILL&lt;/strong&gt; include changes introduced in the end hash.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example Command:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;&amp;gt; version-application -action buildAllApps -vc_username &amp;lt;VC_USERNAME&amp;gt; -vc_password &amp;lt;VC_PASSWORD&amp;gt; -start_hash ac37459 -end_hash 6e83b42&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When the script is executed, it generates a package at the location specified by the packagePath field in version-manager.properties.&lt;/p&gt;
&lt;p&gt;Finally, the build master will import the RC package into the higher environment using the Automated Import tool as described later in this play.&lt;/p&gt;
&lt;h2 id="_using_subversion_as_version_control_system"&gt;Using Subversion as Version Control System&lt;/h2&gt;
&lt;p&gt;To allow the Automated Versioning Manager to perform the checkout and commit operations with Subversion, the tool assumes the common Subversion project structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;trunk&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;branches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tags&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The location of the repository root must be provided by the property repoURL.&lt;/p&gt;
&lt;p&gt;Example: The following version-manager.properties configuration checks out the release 1 branch from the repository located at &lt;a href="https://svn.code.sf.net/p/deploymentautomationexample/code"&gt;https://svn.code.sf.net/p/deploymentautomationexample/code&lt;/a&gt; and commit all changes to the branch &amp;quot;release1&amp;quot;. Optionally, you may specify each of these parameters as command line arguments instead of using the version-manager.properties file.&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=SVN

repoUrl=https://svn.code.sf.net/p/deploymentautomationexample/code

branchName=branches/release1&lt;/pre&gt;&lt;/pre&gt;
&lt;h2 id="_using_git_as_version_control_system"&gt;Using Git as Version Control System&lt;/h2&gt;
&lt;p&gt;To use Git with the Automated Versioning Manager, properties may be specified on the command line or version-manager.properties should be updated as follows:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;versionControlType=GIT

repoUrl=https://github.com/gituser/testgitrepo.git

branchName=newbranch&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;branchName is an optional field. If the branch does not exist remotely, the tool will automatically create it on the local machine and push it to the remote repository as soon as addContents is executed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: if you are planning to check out a private repository, use the Git SSH URL rather than the HTTPS URL.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="_automated_import_manager"&gt;Automated Import Manager&lt;/h2&gt;
&lt;h2 id="_summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;With the Cloud-approved Appian &lt;a href="/b/appmarket/posts/automated-import-manager-aim-plugin" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager plug-in&lt;/a&gt; and the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Automated Import Manager client&lt;/a&gt;&amp;nbsp;available on the AppMarket, users can automatically deploy applications and patch contents (either applications from Appian OR packages generated from the &lt;a href="#Automated_Versioning_Manager"&gt;Automated Versioning Manager&lt;/a&gt;) to any environment. Users will have three options for deployment: the tool can either deploy from the tool&amp;rsquo;s user interface in one click, trigger the deployment from an external CI tool, or deploy from the command line.&lt;/p&gt;
&lt;p&gt;The Automated Import Manager automates the process of inspecting the application, executing DDL scripts, &lt;strong&gt;updating CDTs, republishing the appropriate datastores&lt;/strong&gt;, and importing the application.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4011.deployment_5F00_automation_5F00_02.png" /&gt;&lt;/div&gt;
&lt;h2 id="features_"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect Application:&lt;/strong&gt; This tool will automatically mimic the &amp;quot;Inspect&amp;quot; functionality that exists within Appian&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Validating Application Content:&lt;/strong&gt; In addition to inspecting the application, the tool will ensure all CDT dependents are included to avoid objects pointing to older versions.&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute DDL Scripts:&lt;/strong&gt; DDL scripts can be uploaded and automatically executed. NOTE: For Microsoft SQL Server, only Transact-SQL statements are valid.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Execute Migrations with Flyway:&amp;nbsp;&lt;/strong&gt;Flyway is a tool used for managing database migrations. It makes it easier to track SQL script versions and not re-execute SQL scripts that have already been run. If a Flyway&amp;nbsp;directory is provided, the Automated Import Manager will automatically&amp;nbsp;execute migrations against the corresponding datasource.&amp;nbsp;Learn more about Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/getstarted/how"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Update CDTs:&lt;/strong&gt; Users are no longer required to delete CDTs before updating them, this tool will perform this step automatically&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import Application and admin console configuration:&lt;/strong&gt; Automatically import an application with an optional customization file&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Republish Datastores:&lt;/strong&gt; After application import, datastores will be automatically published or republished&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add Patches:&lt;/strong&gt; Automatically add patch contents to a specified existing application&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="usage_"&gt;Usage&lt;/h2&gt;
&lt;h3 id="1-deploy-from-the-web-browser-ui"&gt;&amp;nbsp;Deploy from the Web Browser UI&lt;/h3&gt;
&lt;p&gt;The tool collects usage metrics by default. To opt-out of metrics collection, check the below option on the Web Browser UI:&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1600x480/__key/communityserver-wikis-components-files/00-00-00-00-46/0702.pastedimage1539370754100v1.png" /&gt;&lt;/div&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/796x1133/__key/communityserver-wikis-components-files/00-00-00-00-46/4186.Screen-Shot-2018_2D00_08_2D00_30-at-3.22.31-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Log into Appian as a system administrator&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the Deployment Automation UI available at the URL: &amp;lt;appian&amp;gt;/suite/plugins/servlet/deploymentautomation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Upload the patch or application you wish to import.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If this application is a patch, select the parent application to which patch contents should be added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the new application requires changes to the database schema (i.e. new or updated CDTs) you must choose one of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upload the corresponding DDL script(s) that accurately reflect these additions and/or updates.&lt;/li&gt;
&lt;li&gt;Set the datastore to &amp;quot;Automatically update database schema&amp;quot; and set &amp;quot;Allow Database Schema Changes Through Data Stores&amp;quot; in the Deployment section of the Appian Administration Console&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click on the button &amp;quot;Start Deployment&amp;quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;During the deployment, the screen is automatically refreshed every 5 seconds with the latest status of the deployment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the deployment is complete, the browser will update with a status page.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8228.deployment_5F00_automation_5F00_04.png" /&gt;&lt;/div&gt;
&lt;h3 id="2-deploy-from-the-command-line-script"&gt;&amp;nbsp;Deploy from the Command Line Script&lt;/h3&gt;
&lt;p&gt;The command line script - the client - can be downloaded from the &lt;a href="/b/appmarket/posts/-automated-import-manager" rel="noopener noreferrer" target="_blank"&gt;Appian AppMarket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If not configured otherwise, the tool collects usage metrics by default. To opt-out of metrics collection, set&amp;nbsp;collectMetrics=false&amp;nbsp;in the file&amp;nbsp;metrics.properties.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/2400x2000/__key/communityserver-wikis-components-files/00-00-00-00-46/7723.Screen-Shot-2018_2D00_08_2D00_30-at-3.29.54-PM.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open a command window in the same folder to which the client script and supporting libraries were unzipped.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the help guide pictured above, run the proper command to automatically import the application. Use -h or -help to view this menu at any time.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;-ac_customization_path: Indicates the path to the customization file to use when deploying the admin console&amp;nbsp;package or the application package.&lt;/li&gt;
&lt;li&gt;-admin_console_path: Indicates the path to the admin console file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-application_path: Indicates the path to the application file to deploy. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-ddl_ds: Optional, use only if providing DDL scripts. The name of the datasource to use with the corresponding DDL script. Use a comma separator to enter multiple datasources.&lt;/li&gt;
&lt;li&gt;-ddl_path: Optional, use only if providing DDL scripts. Indicates the path to the DDL scripts to execute. Use a comma separator to enter multiple DDL script paths. NOTE: Use quotations around the entry.&lt;/li&gt;
&lt;li&gt;-flyway_path: Optional, use only if providing directories to execute DB migrations via Flyway. Use a comma separator to enter multiple directory paths. NOTE: Use quotations around the entry.&amp;nbsp;Make sure your SQL script files in each directory adhere to proper Flyway&amp;nbsp;&lt;a href="https://flywaydb.org/documentation/migrations#naming"&gt;naming conventions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-force_import: A boolean flag which specifies whether or not the import ignores impact analysis results.If true, the import will occur even if objects with CDT references are missing&lt;/li&gt;
&lt;li&gt;-import_customization_path: Indicates the path to the import customization file to use&lt;/li&gt;
&lt;li&gt;-inspect_only: Optional, use to run an inspection of the package. Indicates the package should not be deployed but inspected only.&lt;/li&gt;
&lt;li&gt;-password: Password of the Appian user account&lt;/li&gt;
&lt;li&gt;-proxy_port: Optional, port of the proxy server to use to connect to Appian. This parameter is only used if the parameter -proxy_url is defined. The default value is 8080.&lt;/li&gt;
&lt;li&gt;-proxy_url: Optional, URL of the proxy to use to connect to Appian.&lt;/li&gt;
&lt;li&gt;-url: URL of the environment, of the format &lt;a href="http://example.appian.com/suite"&gt;https://example.appian.com/suite&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;-username: Username of the Appian user account to use for deployment&lt;/li&gt;
&lt;li&gt;-uuid: UUID of the application to which patch contents will be added&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy the application by typing the command deploy-application.bat and including the relevant parameters. Your command will look something like the one pictured below.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;deploy-application.bat -application_path &amp;quot;PATH TO APPLICATION ZIP&amp;quot; -username SERVICE_ACCOUNT_USERNAME -password SERVICE_ACCOUNT_PASSWORD -url APPIAN_URL -ddl_path &amp;quot;PATH TO DLL 1, PATH TO DLL 2&amp;quot; -ddl_ds jdbc/Appian1,jdbc/Appian2&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;The tool also provides the ability to specify all parameters in the &lt;strong&gt;configuration file&amp;nbsp;import-manager.properties&lt;/strong&gt;. The default file bundled with the script contains all the options commented out. To use the file, uncomment the necessary options and specify the appropriate values.&lt;/p&gt;
&lt;p&gt;During the deployment, the prompt is automatically refreshed every 5 seconds with the latest status of the deployment. When the deployment is complete, a status response (like the one pictured below) will display.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6746.deployment_5F00_automation_5F00_06.png" /&gt;&lt;/div&gt;
&lt;h3 id="3-deploy-from-an-external-continuous-integration-tool"&gt;Deploy from an External Continuous Integration tool&lt;/h3&gt;
&lt;p&gt;Additional Requirement:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An existing external Continuous Integration tool (such as Jenkins or Hudson) that is properly configured&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The steps below provide the high level steps to deploy an application from Jenkins.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new external job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the job to run the import script using the guidance in Deployment Option #2 listed above&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute the job&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/8132.deployment_5F00_automation_5F00_07.png" /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;When the deployment is complete, check the status page verify that the import was successful.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/5078.deployment_5F00_automation_5F00_08.png" /&gt;&lt;/div&gt;
&lt;h2 id="_troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;h2 id="deciphering_script_error_messages"&gt;Deciphering Script Error Messages&lt;/h2&gt;
&lt;h3 id="inspect-failure"&gt;Inspect Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails on inspect, please check the error log and inspect log to determine the root cause of the inspect error. Additionally, please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Inspect_Package.html"&gt;Inspect Package&lt;/a&gt; documentation to determine what common inspect issues may arise.&lt;/p&gt;
&lt;h3 id="package-validation-failure"&gt;Package Validation Failure&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;This feature is only for Appian 7.11 and above.&lt;/strong&gt; If the Automated Import script fails during package validation, this means that objects with certain CDT dependencies are missing. Please check the error message which will include the list of missing required dependencies. Appian recommends to include these dependencies in the application prior to importing.&lt;/p&gt;
&lt;p&gt;In case you want to proceed with deploying the application regardless of missing CDT dependencies, use the flag -f.&lt;/p&gt;
&lt;h3 id="import-failure"&gt;Import Failure&lt;/h3&gt;
&lt;p&gt;If the Automated Import script fails during import, it will produce an error log that contains the reason(s) for import failure. Please refer to the &lt;a href="https://docs.appian.com/suite/help/latest/Application_Deployment_Guidelines.html#Issues_During_Export_or_Import"&gt;Application Deployment Guidelines&lt;/a&gt; documentation on import issues to determine the root cause of the import failure.&lt;/p&gt;
&lt;h3 id="invalid-credentials"&gt;Invalid Credentials&lt;/h3&gt;
&lt;p&gt;Please ensure that these credentials are associated with an active Appian system administrator account. Basic user credentials cannot be used.&lt;/p&gt;
&lt;h3 id="connection-refused-with-deployment-command-line-script"&gt;Connection Refused With Deployment Command Line Script&lt;/h3&gt;
&lt;p&gt;A &amp;quot;Connection Refused&amp;quot; error could be the result of using the wrong URL when executing the script. The URL provided as a parameter must:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;include the suffix &amp;quot;/suite&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include a port number if not using the port 80 with HTTP or port 443 with HTTPS&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="release_notes"&gt;Release Notes&lt;/h2&gt;
&lt;h2 id="september&amp;nbsp;2021_-_release_2.5.13"&gt;September&amp;nbsp;2021 - Release 2.5.13&lt;/h2&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed an issue where setting &amp;quot;appianObjectsRepoPath&amp;quot; prevented a package that included a patches.xml file from being processed successfully&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="march&amp;nbsp;2021_-_release_2.5.12"&gt;March&amp;nbsp;2021 - Release 2.5.12&lt;/h2&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Updated the link to the import log in the ADM servlet after a change was made to the Appian API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed a bug that was preventing Flyway files from being included in metadata.properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="september&amp;nbsp;2020_-_release_2.5.11"&gt;September&amp;nbsp;2020 - Release 2.5.11&lt;/h2&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Upgraded Flyway version to 6.5.5 for compatibility with MariaDB.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="august&amp;nbsp;2020_-_release_2.5.10"&gt;August&amp;nbsp;2020 - Release 2.5.10&lt;/h2&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added the ability to dynamically generate the Metadata file for the &amp;quot;buildAllApps&amp;quot; action to reflect only the list of database scripts that are included in the package for a given commit range.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul&gt;
&lt;li class="li1"&gt;Fixed the interpretation of &amp;quot;appianObjectsRepoPath&amp;quot; on Windows platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="december&amp;nbsp;2019&amp;nbsp;-_release_2.5.9"&gt;December&amp;nbsp;2019&amp;nbsp;- Release 2.5.9&lt;/h2&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul&gt;
&lt;li class="li1"&gt;Added DNS proxy support to ADM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AIM&lt;/li&gt;
&lt;li class="li1"&gt;Added DNS proxy support to AVM&lt;/li&gt;
&lt;li class="li1"&gt;Added support for special characters in passwords in ADM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="july&amp;nbsp;2019&amp;nbsp;-_release_2.5.8"&gt;July&amp;nbsp;2019&amp;nbsp;- Release 2.5.8&lt;/h2&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;Fixed the problem with obtaining TransactionManager and creating DataConfiguration against latest the Appian version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="april&amp;nbsp;2019&amp;nbsp;-_release_2.5.7"&gt;April&amp;nbsp;2019&amp;nbsp;- Release 2.5.7&lt;/h2&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added commit message prompt to folder listener&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed Windows issue with pushing file updates to versioning manager&lt;/li&gt;
&lt;li class="li1"&gt;Fixed import patch failure not adding newly created objects issue&lt;/li&gt;
&lt;li class="li1"&gt;Fixed semicolon separator parsing issue&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="march&amp;nbsp;2019_-_release_2.5.6"&gt;March&amp;nbsp;2019 - Release 2.5.6&lt;/h2&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added proxy authentication support for import client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="february&amp;nbsp;2019_-_release_2.5.5"&gt;February&amp;nbsp;2019 - Release 2.5.5&lt;/h2&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed DDL paths bug&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="january&amp;nbsp;2019_-_release_2.5.4"&gt;January&amp;nbsp;2019 - Release 2.5.4&lt;/h2&gt;
&lt;ul class="ul1"&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Improved descriptions of errors encountered during deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Fixed &amp;quot;Connection Refused&amp;quot; bug when running on a Jenkins server&lt;/li&gt;
&lt;li&gt;Fixed &amp;quot;buildSingleApp&amp;quot; AVM bug when specifying an appianObjectsRepoPath&lt;/li&gt;
&lt;li&gt;Fixed rare &amp;quot;hanging&amp;quot; bug in AIM Client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="november&amp;nbsp;2018_-_release_2.5.3"&gt;November&amp;nbsp;2018 - Release 2.5.3&lt;/h2&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Created a reset command for Remote Automated Deployment Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Version and Import Metrics Logger Initialized correctly to fix null pointer exception&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="october&amp;nbsp;2018_-_release_2.5.2"&gt;October&amp;nbsp;2018 - Release 2.5.2&lt;/h2&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li&gt;Folder listener to auto trigger &amp;ldquo;Add Contents&amp;rdquo; action&lt;/li&gt;
&lt;li&gt;Field validation for import and versioning manager properties files&lt;/li&gt;
&lt;li&gt;Usage metrics collection to better understand tool use&lt;/li&gt;
&lt;li&gt;Updated error log messages&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li&gt;ADM UI: Handle apostrophes in app name&lt;/li&gt;
&lt;li&gt;ZIP type validation for Automated Import Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="&amp;nbsp;september&amp;nbsp;2018_-_release_2.5.1"&gt;&amp;nbsp;September&amp;nbsp;2018 - Release 2.5.1&lt;/h2&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;New buildMultipleApps action&lt;/li&gt;
&lt;li class="li1"&gt;Check version of tools with -v or -version flags&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed ADM SQL errors with non-null statements and forward slash as delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="august&amp;nbsp;2018_-_release_2.5.0"&gt;August&amp;nbsp;2018 - Release 2.5.0&lt;/h2&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added Flyway DB version control tool to command line and AIM GUI&lt;/li&gt;
&lt;li class="li1"&gt;Allow import of DDL scripts or Flyway scripts without an application zip or patch zip&lt;/li&gt;
&lt;li class="li1"&gt;Added Folder Listener script that will run addContents automatically when a file is dropped into a folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added buildAllApps to list of approved actions&lt;/li&gt;
&lt;li class="li1"&gt;Set inspect_only properly in AIM&lt;/li&gt;
&lt;li class="li1"&gt;Fixed bug where repo would be cloned into a folder with an incorrect name&lt;/li&gt;
&lt;li class="li1"&gt;Passed in correct authentication token for buildAllApps and buildSingleApp&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="august&amp;nbsp;2018_-_release_2.4.7"&gt;August&amp;nbsp;2018 - Release 2.4.7&lt;/h2&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Enhancements
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Added &amp;quot;buildSingleApp&amp;quot; action to extract one app from multi app repo&lt;/li&gt;
&lt;li class="li1"&gt;Renamed &amp;quot;buildPackage&amp;quot; action to &amp;quot;buildAllApps&amp;quot; to better clarify the functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="li1"&gt;Bug Fixes
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Fixed miscellaneous issues with parsing SQL in DDL file&lt;/li&gt;
&lt;li class="li1"&gt;Mark/reset issue with large customization files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="june&amp;nbsp;2018_-_release_2.4.6"&gt;June&amp;nbsp;2018 - Release 2.4.6&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Enhancements
&lt;ul&gt;
&lt;li&gt;Added an import-manager.properties file to set default values for importing applications&lt;/li&gt;
&lt;li&gt;Automated versioning manager supports adding a package with multiple patches&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug Fixes
&lt;ul&gt;
&lt;li&gt;Application version UUID is updated when adding patches to a version control&lt;/li&gt;
&lt;li&gt;Import no longer fails when SQL in DDL file contains a &amp;quot;;&amp;quot;, &amp;quot;&amp;ndash;&amp;quot; or &amp;quot;/**/&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="march_2018_-_release_2.4.5"&gt;March 2018 - Release 2.4.5&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Add support for proxy configuration in the deployment client script with parameters &amp;quot;proxy_port&amp;quot; and &amp;quot;proxy_url&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="january&amp;nbsp;2018_-_release_2.4.4"&gt;January&amp;nbsp;2018 - Release 2.4.4&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="january_2018_-_release_2.4.3"&gt;January 2018 - Release 2.4.3&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.4&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="september_2017_-_release_2.4.2"&gt;September 2017 - Release 2.4.2&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.3&lt;/li&gt;
&lt;li&gt;Better handling of end of line characters in the SQL scripts&lt;/li&gt;
&lt;li&gt;Support for customization file when deploying an application package&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="june_2017_-_release_2.4.1"&gt;June 2017 - Release 2.4.1&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.2&lt;/li&gt;
&lt;li&gt;Fix defect preventing to execute DB scripts as part of a deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="january_2017_-_release_2.4.0"&gt;January 2017 - Release 2.4.0&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 17.1&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="october_2016_-_release_2.3"&gt;October 2016 - Release 2.3&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Support for Appian 16.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="september_2016_-_release_2.2.9"&gt;September 2016 - Release 2.2.9&lt;/h2&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Successfully deploy application packages containing new Datastore entities and new dependents on these entities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="september_2016_-_release_2.2.8"&gt;September 2016 - Release 2.2.8&lt;/h2&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with missing artifacts in package when using START_HASH and END_HASH.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="august_2016_-_release_2.2.7"&gt;August 2016 - Release 2.2.7&lt;/h2&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing updated Documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="august_2016_-_release_2.2.6"&gt;August 2016 - Release 2.2.6&lt;/h2&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New parameter no_update to build a package from the local repository without first performing a checkout&lt;/li&gt;
&lt;li&gt;New integrity control when checking in applications and patches&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="august_2016_-_release_2.2.5"&gt;August 2016 - Release 2.2.5&lt;/h2&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed defect with deploying applications and patches containing new CDTs and updated CDTs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="june_2016_-_release_2.2.4"&gt;June 2016 - Release 2.2.4&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="june_2016_-_release_2.2.3"&gt;June 2016 - Release 2.2.3&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Include the source code in all modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="june_2016_-_release_2.2.2"&gt;June 2016 - Release 2.2.2&lt;/h2&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new parameter appian_objects_repo_path to specify where the Appian artifacts are located in the repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="may_2016_-_release_2.2.0"&gt;May 2016 - Release 2.2.0&lt;/h2&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for admin console packages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed update-database-schema to support native product capability of automatic database updates via datastore and administration console.&lt;/li&gt;
&lt;li&gt;Updated Web Browser UI style&lt;/li&gt;
&lt;li&gt;Removed option for &amp;quot;Automatically update the database schema when publishing the data stores&amp;quot; from the Web Browser UI&lt;/li&gt;
&lt;li&gt;Added support for admin console deployments&lt;/li&gt;
&lt;li&gt;Added support in command line for inspect_only parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="march_2016_-_release_2.1.0"&gt;March 2016 - Release 2.1.0&lt;/h2&gt;
&lt;h3 id="automated-versioning-manager"&gt;Automated Versioning Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for input flexibility. Now, the command line for versioning manager supports all possible parameters.&lt;/li&gt;
&lt;li&gt;Allowed tags as inputs to start hash and end hash.&lt;/li&gt;
&lt;li&gt;Added inputs of the following predefined keywords: FIRST_COMMIT (which maps to first commit ever made) and LAST_COMMIT (the previous commit). NOTE: this is only allowed on the start hash input.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="automated-import-manager"&gt;Automated Import Manager&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for 16.1.&lt;/li&gt;
&lt;li&gt;Added action for &amp;quot;Inspect Only&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment Automation</title><link>https://community.appian.com/success/w/guide/3328/deployment-automation/revision/1</link><pubDate>Thu, 07 Sep 2023 19:31:37 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43c6339b-3b7e-4b44-ba4b-4a8c46753052</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3328/deployment-automation#comments</comments><description>Revision 1 posted to Guide by joel.larin on 9/7/2023 7:31:37 PM&lt;br /&gt;
&lt;p&gt;FASD&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>