Introduction
CAST Extend local server is delivered "empty" without any preconfigured extensions and in normal functioning mode, extensions will be automatically downloaded from CAST Extend when requested by AIP Console or Extension Downloader. However, you can also populate CAST Extend local server with specific extensions manually should you need to.
The process of updating is as follows:
- Create a new bundle (an .extarchive file) containing the extensions you require using ExtendCli
- Upload the bundle to update CAST Extend local server:
- using CAST Console ≥ 1.12.0 (this method has been removed in Console ≥ 2.5)
- using the CAST Extend API and curl
When CAST Extend local server is updated with a new bundle of extensions and extensions have already been added, a "merge" is actioned, rather than a "delete and add". This means that no extensions are ever removed, i.e.:
- Any extensions that already exist in CAST Extend local server but do not exist in the new bundle will remain as they are in CAST Extend local server
- Any extensions that already exist in CAST Extend local server at a given version number will remain as they are in CAST Extend local server when:
- an older version of the same extension is added to the bundle (both versions will be available for use)
- a newer version of the same extension is added to the bundle (both versions will be available for use)
- an older and a newer version of the same extension are added to the bundle (all three versions will be available for use)
- the same version of the extension is added to the bundle
When an .extarchive is uploaded, the packages are stored by default in:
%PROGRAMDATA%\CAST\Extend\packages
The ability to create a bundle using the live CAST Extend website is no longer supported. You must use ExtendCli.
Update process
Creating the bundle (.extarchive file)
See ExtendCli for more detailed information. If you want to simply add all product extensions to a bundle (.extarchive file), you can use the following commands:
ExtendCli.exe config set api-key <YOUR API KEY> ExtendCli.exe bundle clear ExtendCli.exe bundle template add product Extendcli.exe bundle pack -o <Folder path>
If you want to download and pack labs and community extensions, you can use the following additional commands:
ExtendCli.exe bundle template add labs ExtendCli.exe bundle template add community
Or alternatively, you can add specific extensions:
ExtendCli.exe config set api-key <YOUR API KEY> ExtendCli.exe bundle clear ExtendCli.exe bundle add com.castsoftware.html5 ExtendCli.exe bundle add com.castsoftware.jee ExtendCli.exe bundle add com.castsoftware.dotnet Extendcli.exe bundle pack -o <Folder path>
If CAST Imaging v3 is deployed on Linux via Docker, you will need to modify the pack command to add -p (--platform) (this will force the tool to fetch only extensions that are compatible with Linux) and -i (--ignore) (this will suppress any warnings about extensions that cannot be resolved because they are not supported in a Linux environment):
ExtendCli.exe config set api-key <CAST_EXTEND_API_KEY> ExtendCli.exe bundle clear ExtendCli.exe bundle template add product Extendcli.exe bundle pack -o <FOLDER_PATH> -p linux_x64 -i
Upload the bundle to CAST Extend local server
Note that the upload will fail if a manifest synchronization is currently ongoing on your CAST Extend local server. This synchronization occurs by default every two hours and can be triggered manually. You can check whether a synchonization is taking place using the Admin Center in the Extend Local server, see Manage CAST Extend local server via Administration Center.
Via CAST Console
This method has been removed in Console ≥ 2.5.
If you are using CAST Extend local server with CAST Console, the process of updating CAST Extend local server is handled automatically by CAST Console. Login to CAST Console with a user account that already has the Admin role and switch to the Admin Center:
Now move to the Administration Center - System Settings panel and expand the CAST Extend option:
Click to enlarge
Drag and drop your downloaded bundle in to the options screen, or click the button to choose the .extarchive file directly. The bundle will then be uploaded and added to CAST Extend local server automatically and all new extensions added to the bundle will be available immediately.
Via the CAST Extend local server GUI
Starting v. ≥ 1.1.0, CAST Extend local server has its own GUI which you can use to upload the .extarchive file. See Manage CAST Extend local server via Administration Center for more information about this.
Via the CAST Extend local server built in API and curl
CAST Extend local server has a built in API that can be accessed in a manner of ways. It is therefore possible to upload a new bundle using the api/synchronization/bundle/upload
API, for example with curl:
curl -H "x-cxproxy-apikey:<APIKEY>" -F "data=@path_to_file.extarchive" http://<server>:<port>/api/synchronization/bundle/upload
-H | This option defines an extra header to include in the request when sending HTTP to a server. In the case of CAST Extend local server, this is used to send the APIKEY value to allow access. See https://curl.se/docs/manpage.html#-H. |
---|---|
APIKEY | The APIKEY that grants access to Extend local server. The APIKEY value is displayed at the end of the CAST Extend local server installation process. Alternatively you can find the APIKEY value in the following location on the server on which CAST Extend local server is installed: ≥ 2.0.0-funcrel %PROGRAMDATA%\CAST\Extend\config.proxy.json ≤ 1.3.0-funcrel %PROGRAMFILES%\CAST\Extend\config.proxy.json The key is located on the line APIKEY: { "PORT": 8085, "STORAGE_DIR": "c:/ProgramData/CAST/Extend", "PACKAGE_DIR": null, "LOG_DIR": "C:/Program Files/CAST/Extend/logs", "PUBLIC_URL": "http://WIN10TEST:8085/", "EXTEND_URL": "https://extend.castsoftware.com", "APIKEY": "<api_key>", "ADMI": "admi194c45b7d34a12adb81df7838b66e127e280838b2585276604865460316d6813353000e1b800c50e3d2cd6b2740bf47a99568c70ca52424c77f7d5a2b8016b810", "SYNC_TYPE": "auto" } |
-F | This causes curl to POST data using the Content-Type multipart/form-data. See https://curl.haxx.se/docs/manpage.html#-F |
path_to_file.extarchive | The path to the .extarchive bundle file. Replace this with your |
<server> | Forms the URL to your on premises CAST Extend local server. For example:
|
<port> | |
API |
For example:
curl -H "x-cxproxy-apikey:<api_key>" -F "data=@D:\downloads\b2b430df976c412ca29e799fff0fd86e.extarchive" http://WIN10TEST:8085/api/synchronization/bundle/upload
Note that the option "-V" (not listed above) can be added where you need to debug an issue during the upload process. CAST does not recommend using this option for normal usage.
Refresh the CAST Console extensions cache
The final step in the update process is to ensure that the CAST Console extension cache (a dynamic record of all available extensions) is refreshed. If you do not do this, you may find that CAST Console does not immediately offer your uploaded extension(s) in the Available tab of the Application - Extensions panel. There are two ways to refresh this cache:
Option 1 - Restart all Nodes
Ensure you restart all Nodes that are currently configured in CAST Console. CAST recommends using this method where possible.
Option 2 - Update the CAST Extend settings in CAST Console
Click the Save button (do not make any changes to the configuration). This option may still have a delay of a few minutes: