Automated Versioning Manager (AVM)

Overview

The Automated Versioning Manager is a tool that helps manage 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:

  • Unzips the application and organizes the artifact XML files in the repository.
  • Automates the check-in and check-out operations with the version control system.
  • Generates application packages for import in Appian based on the contents of the repository and a range of changes to include.

This tool is frequently used with the native, external deployment APIs (https://docs.appian.com/suite/help/22.1/Deployment_Rest_API.html) or the Automated Import Manager (AIM) (https://community.appian.com/w/the-appian-playbook/198/deployment-automation). Unless you are doing deployments for the Admin Console, we suggest using the native APIs.

Key Features & Functionality

  • Version Control integration (Git, SVN)
  • Supports Appian applications and packages
  • Generate import package from hash ranges
  • Folder Listener to add contents to Version Control
  • Supports GitHub, GitLab, and BitBucket for Version Control

You can access the source code for AVM by exploding the ZIP file after download.

Note: This utility does not support Java version 9.0. 

Anonymous
  • v2.6.2 Release Notes
    • Upgraded the plugin to make it compatible with Appian version 25.1 and above. Also added the old version of the utility as a supplemental file for users below 25.1 version.
  • Hi,

    When trying to install this for Appian on Appian Government Cloud (version 24.3.900.0) using the "Use this utility for Appian Versions below 25.1.zip" in the extracted zip, we encounter this error message.

    2025-04-22 19:28:05,740 [Appian Plugin Hot Deploy] ERROR com.atlassian.plugin.loaders.ScanningPluginLoader - Unable to deploy plugin 'null' from 'Unit: /usr/local/appian/_admin/plugins/Automated Versioning Manager (AVM) 2.5.33.zip (1745349997000)'. 2025-04-22 19:28:05,740 [Appian Plugin Hot Deploy] ERROR com.atlassian.plugin.loaders.ScanningPluginLoader - Because of the following exception: com.appiancorp.plugins.component.ComponentPluginParseException: COMPONENT_PLUGIN_ERROR_TOKENCould not parse zip file - make sure it is formatted properly at com.appiancorp.plugins.component.ComponentPluginXmlResolver.isDeprecatedDefinitionXml(ComponentPluginXmlResolver.java:53) at com.appiancorp.plugins.component.ComponentPluginXmlResolver.getPluginXml(ComponentPluginXmlResolver.java:33) at com.appiancorp.plugins.component.ComponentPluginFactory.canCreate(ComponentPluginFactory.java:85) at com.appiancorp.plugins.osgi.LoggingPluginFactoryDecorator.canCreate(LoggingPluginFactoryDecorator.java:28) at com.atlassian.plugin.loaders.ScanningPluginLoader.deployPluginFromUnit(ScanningPluginLoader.java:142) at com.atlassian.plugin.loaders.ScanningPluginLoader.loadFoundPlugins(ScanningPluginLoader.java:113) at com.appiancorp.plugins.loaders.UnloadingDirectoryPluginLoader.loadFoundPlugins(UnloadingDirectoryPluginLoader.java:55) at com.appiancorp.plugins.loaders.PluginVersion2DefaultLoader.loadFoundPlugins(PluginVersion2DefaultLoader.java:47) at com.atlassian.plugin.loaders.PermissionCheckingPluginLoader.loadFoundPlugins(PermissionCheckingPluginLoader.java:31) at com.atlassian.plugin.manager.DefaultPluginManager.lambda$scanForNewPlugins$14(DefaultPluginManager.java:881) at com.atlassian.plugin.manager.PluginTransactionContext.wrap(PluginTransactionContext.java:63) at com.atlassian.plugin.manager.DefaultPluginManager.scanForNewPlugins(DefaultPluginManager.java:877) at com.appiancorp.plugins.AppianPluginManager.scanForNewPlugins0(AppianPluginManager.java:193) at com.appiancorp.plugins.AppianPluginManager.scanForNewPlugins(AppianPluginManager.java:185) at com.appiancorp.plugins.HotDeployerRunnable.run(HotDeployerRunnable.java:28) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) 2025-04-22 19:28:05,741 [Appian Plugin Hot Deploy] ERROR com.appiancorp.plugins.LoggingPluginEventListener - Failed to load Component Plug-in 'Automated Versioning Manager (AVM) 2.5.33.zip': Could not parse zip file - make sure it is formatted properly

  • Hi,

    When trying to deploy the "Utility for Appian Versions below 25.1", we get this error message. Please advise.

    2025-04-22 19:28:05,740 [Appian Plugin Hot Deploy] ERROR com.atlassian.plugin.loaders.ScanningPluginLoader - Unable to deploy plugin 'null' from 'Unit: /usr/local/appian/_admin/plugins/Automated Versioning Manager (AVM) 2.5.33.zip (1745349997000)'. 2025-04-22 19:28:05,740 [Appian Plugin Hot Deploy] ERROR com.atlassian.plugin.loaders.ScanningPluginLoader - Because of the following exception: com.appiancorp.plugins.component.ComponentPluginParseException: COMPONENT_PLUGIN_ERROR_TOKENCould not parse zip file - make sure it is formatted properly at com.appiancorp.plugins.component.ComponentPluginXmlResolver.isDeprecatedDefinitionXml(ComponentPluginXmlResolver.java:53) at com.appiancorp.plugins.component.ComponentPluginXmlResolver.getPluginXml(ComponentPluginXmlResolver.java:33) at com.appiancorp.plugins.component.ComponentPluginFactory.canCreate(ComponentPluginFactory.java:85) at com.appiancorp.plugins.osgi.LoggingPluginFactoryDecorator.canCreate(LoggingPluginFactoryDecorator.java:28) at com.atlassian.plugin.loaders.ScanningPluginLoader.deployPluginFromUnit(ScanningPluginLoader.java:142) at com.atlassian.plugin.loaders.ScanningPluginLoader.loadFoundPlugins(ScanningPluginLoader.java:113) at com.appiancorp.plugins.loaders.UnloadingDirectoryPluginLoader.loadFoundPlugins(UnloadingDirectoryPluginLoader.java:55) at com.appiancorp.plugins.loaders.PluginVersion2DefaultLoader.loadFoundPlugins(PluginVersion2DefaultLoader.java:47) at com.atlassian.plugin.loaders.PermissionCheckingPluginLoader.loadFoundPlugins(PermissionCheckingPluginLoader.java:31) at com.atlassian.plugin.manager.DefaultPluginManager.lambda$scanForNewPlugins$14(DefaultPluginManager.java:881) at com.atlassian.plugin.manager.PluginTransactionContext.wrap(PluginTransactionContext.java:63) at com.atlassian.plugin.manager.DefaultPluginManager.scanForNewPlugins(DefaultPluginManager.java:877) at com.appiancorp.plugins.AppianPluginManager.scanForNewPlugins0(AppianPluginManager.java:193) at com.appiancorp.plugins.AppianPluginManager.scanForNewPlugins(AppianPluginManager.java:185) at com.appiancorp.plugins.HotDeployerRunnable.run(HotDeployerRunnable.java:28) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) 2025-04-22 19:28:05,741 [Appian Plugin Hot Deploy] ERROR com.appiancorp.plugins.LoggingPluginEventListener - Failed to load Component Plug-in 'Automated Versioning Manager (AVM) 2.5.33.zip': Could not parse zip file - make sure it is formatted properly

  • v2.6.0 Release Notes
    • Replaced metaparadigm json rpc with appian json rpc to make the plugin compatible with Appian 25.1+ versions.
  • Following up on this I extracted the jar and there's no appian-plugin.xml file present. I'm assuming these are specific to each plugin, so is there one I should download from somewhere and add to the jar?

  • Hi all,

    We're attempting to install this plugin on a self hosted Appian on Kubernetes solution. We're on version 24.2.585. With all other plugins we just drop the plugin jar in the {APPIAN_HOME}/ae/_admin/plugins and they start up with no error. 

     With this plugin we're getting 
    Failed to enable Plug-in 'appian-adm-versioning-client-2.5.33.jar' (appian-adm-versioning-client-2.5.33.jar) version 0.0: 'No plugin factories found for plugin file Unit:  {APPIAN_HOME}/ae/_admin/plugins/appian-adm-versioning-client-2.5.33.jar (1740434030985). Does it contain an appian-plugin.xml file?' 
    We've done some research and it seems like this is something that should be included in the jar. Is there anything we're missing or did we grab a wrong version of the plugin that doesn't work with our current appian version?
  • v2.5.33 Release Notes
    • Upgraded Commons-IO Library for security fix
  • v2.5.32 Release Notes
    • Upgraded the org eclipse jgit version
  • we just found an issue that the process models got supper indented for example one expression ont he export came <expr>CODE</expr> it became 3 lines

    <expr>

        CODE

    </expr>

    This is causing the process models render to see really awful, and hard to read and understand. 

    I looked at the commits and the only commit that introduced the spaces came from the AVM addContents tool before that commit the repor code was great and the patch was ko too. 

    I found on the code that every time we run the tool to add content the AVM tool is opening the xml , loading as XML document in Java, then it adds a comment at the end and write the document using the following lines 

    ------------------

    xformer.setOutputProperty(OutputKeys.INDENT, "yes");
    xformer.setOutputProperty("{">xml.apache.org/xslt}indent-amount", "4");

    ------------------

    So far this is my only suspect in the process that caused this situation. 

    have anybody experienced similar situation ?

  • Please try to use the Personal access tokens(PAT) token in place your Git password(vcPassword) in Version Manager property file.

    How to generate the PAT token in Git.

    1) Login to your Git

    2) Go to settings

    3) Select to Developer Settings

    4) From the lift side options please select the "Personal access tokens" and click on "Generate a personal access token

    5) Please mention the name of Token and select the scopes of this token

    6) In Below of page please click on Generate token.

    7) Please note down the generated token as it will be display only once to you.

    8) Use the generated token in vcPassword in the version-manager.properties

    I hope the above steps will help you to resolve the Authorized issue.