Summary: step-by-step instructions for manually updating CAST Extend local server with new content.

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"
}
-FThis causes curl to POST data using the Content-Type multipart/form-data. See https://curl.haxx.se/docs/manpage.html#-F
path_to_file.extarchiveThe path to the .extarchive bundle file. Replace this with your 
<server>

Forms the URL to your on premises CAST Extend local server. For example:

  • <server>: the local server on which CAST Extend local server is installed.
  • <port>: the port number which CAST Extend local server runs on. This is determined during the installation (default port number is set to 8085).
  • API: use the api/synchronization/bundle/upload URL
<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: