I have questions and comments about the ext.install command. This command installs an extension or package of extensions.
The core.help command appears to list all available commands; however, it does NOT include the ext.install command. Execution of core.help?prefix=ext outputs "Error 0 : No commands with prefix 'ext' were found". Nonetheless, execution of core.help?command=ext.install DOES produce output providing usage help for the ext.install command:
1. Is this an officially supported command? Can it be added to the documentation?
Despite the lack of documentation, I have noticed that people have discovered this command and have attempted to use it; but most seem to be having trouble. I believe this is due to the fact that this command requires that multipart/form-data encoding be used when uploading the file; and this can not be done by simply adding the extension parameter to a URL in a web browser. I was able to successfully install an extension using the -F argument and @ with curl. The working command looks like this with curl:
curl.exe -k -u username:password "https://hostname:portnumber/remote/ext.install?deleteIfExists=True" -F extension=@EPOAGENTMETA.zip
Unfortunately, I have been advised that installing an extension using this ext.install command causes a loss of all existing client tasks and assignments. Installing an extension using the web interface does not appear to exhibit this same behavior. As a workaround, I would simply export all client tasks into an XML file using the clienttask.export command beforehand and re-import the client tasks afterwards using the clienttask.importClientTask command; however, all assignments are also lost, and I do not see a command to export, import, or create assignments via the API.
2. Is there any way to prevent the loss of client tasks and assignments when installing an extension using the ext.install command?