Summary: describes how to work with CAST AIP Extensions within Console.
How does Console provide access to extensions?
Console provides two methods to work with extensions, these are explained below. In each case, when an extension needs to be fetched either from CAST public Extend servers or from an on premises Extend local server, the following will be used on the relevant Node:
Console ≥ 1.25 | ExtendCli.exe |
---|---|
Console ≤ 1.24 | ExtensionDownloader.exe |
The option allows you to run actions such as analysis, upload to Imaging, upload Dashboards:
Not available when using Workflow - Application onboarding with Fast Scan.
Included extensions
When using:
- Workflow - Application onboarding with Fast Scan, this section is available on completion of a Fast Scan and subsequently following a deep analysis.
- Workflow - Application onboarding without Fast Scan, this section will not be populated for new Applications until you add a new version and its status is a minimum of "Delivered".
Included extensions are the extensions that are active and used when you run an analysis for a specific Application version. Extensions that are used when you run an analysis are automatically determined by Console and are installed for every single source code Version you deliver - this means that each Version will have a specific set of extensions enabled and active, tailored to the source code that needs to be analyzed. You can also manually include additional extensions that have not been included automatically, if necessary.
Each "included" extension is represented by a rectangular item in the list, for example for the HTML5/JavaScript Analyzer:
1 | Name of the extension. This is a clickable link that will take you direct the extension in the CAST Extend public website. Note that when using Extend local server (in offline or connected mode), the clickable link will not be available. In addition, when the extension does not exist in the CAST Extend public website (for example internal or custom extensions that have not been published to Extend) the link will produce a 404 page not found. |
---|---|
2 | Indicates the extension category (Product / User Community / Labs) and the origin (Discovered, Force Install, Shipped) - see below. |
3 | Allows you to remove Discovered and Force Installed extensions, for example to maintain identical results between successive versions. Note that Console will not re-download an extension that has been deleted. If you require the extension again, it must be downloaded manually. |
4 | Allows you to change the specific release of an extension - see Change extension version. |
5 | Indicates that a newer release of the extension is available in CAST Extend (local or public). |
Extension origin priority
Console obtains details about which extensions to use and where to get them from, from several different sources - these are known as the extension "origin":
- extensions that are already installed for the version
- extensions that have been discovered for a new version
- settings defined in Administration Center - Extensions Strategy / Administration Center - Settings - Extensions Strategy
When an extension has multiple "origins", Console uses a priority system to determine which "origin" should be used to include the extension in a given Application version. The priority used is as follows:
≥ 1.21.0-funcrel | CUSTOM are overwritten by SHIPPED which are overwritten by DISCOVERED which are overwritten by FORCE_INSTALL |
---|---|
≤ 1.20.0-funcrel | CUSTOM are overwritten by DISCOVERED which are overwritten by FORCE_INSTALL which are overwritten by SHIPPED |
- CUSTOM = Extensions that are manually "included" in a given version of an Application using the Console interface
- SHIPPED = Extensions that are shipped with AIP Core on the relevant Node
- DISCOVERED = Extensions that Console automatically determines (during the source code delivery) must be installed for a given version of an Application
- FORCE_INSTALL = Extensions selected by a user with the ADMIN role for use during an Application analysis (see Administration Center - Settings - Extensions Strategy for more information)
Extension categories
Extensions fall into the following categories:
Shipped extensions | These extensions are shipped with AIP Core on the target Node used by your Application (they are delivered in the shipped_extensions folder in the AIP Core installation on the target node and are moved into %PROGRAMDATA%\CAST\CAST\Extensions during the Application creation process). In AIP Core ≥ 8.3.48, many extensions that were previously categorized as "shipped extensions" are no longer "shipped" with AIP Core (you can find a list here: Shipped extensions) and are now "discovered". For Nodes using older releases of AIP Core, "shipped extensions" are typically critical extensions such as: These extensions are "flagged" as follows: The behaviour of these extensions is as follows:
| ||||||
---|---|---|---|---|---|---|---|
Discovered | Discovered extensions are flagged as follows: Any extension that is flagged as Discovered has either:
Note that:
| ||||||
Force Installed | These extensions are flagged as Force Installed as follows: Any extension that is flagged as Force Installed has been specifically selected by an Admin user for use during an Application analysis (see Administration Center - Settings - Extensions Strategy for more information). | ||||||
Manually included | These are extensions that you have decided to add yourself manually from the Available panel. These extensions will be downloaded and stored on the Node used by the Application. Note that these extensions are not "flagged" in any specific way in the Console interface, however, they could additionally be flagged as Discovered or Force Installed. | ||||||
Product / User Community / Labs | An extension always falls into one of three categories, explained in Contributor types:
|
Available extensions
Available extensions are extensions that are not active for the current version, but can be included manually if you wish to:
Working with included extensions
Included extensions are those that will be used when you analyze a version.
Any changes you make, such as adding new extensions via the Available option, or changing the version number of an existing included extension, require action before the changes will be taken into account:
- you can run an analysis to ensure that the changes are taken into account. Running just a snapshot without an analysis will not implement the changes you have made.
- In ≥ 1.18, a yellow banner will appear at the top of the screen with an option to run the extension installation action on its own without having to run an analysis, or to run an analysis (which includes the install extensions step in ≥ 1.19):
Move to the Console screen if you are not already there:
Find the relevant Application - extensions are always installed on a "per Application basis" - in this example it is called "MEUDON":
Click the Extensions option on the left (click to enlarge):
A list of included extensions is displayed:
Click to enlarge:
Switching Application versions
Extensions will be used on a per Version basis - use the drop down list to switch to a different Application Version and view the included extensions for the specific Version:
Click to enlarge:
Enable auto configuration
This option has been removed in ≥ 2.3: Discovered and Force Installed extensions can be removed at all times. Shipped extensions cannot be removed.
In the majority of situations you should let Console manage the discovery of extensions, however, when running a rescan to perform a consistency check (for example), you may sometimes need to remove a particular extension to maintain identical results, therefore this option controls the ability to remove Discovered and Force Installed extensions:
Behaviour of the option:
- when enabled (default position), it is not possible to remove Discovered or Force Installed extensions.
- when disabled, it is possible to remove an extension that has been discovered by Console or force installed using the delete icon (Shipped extensions cannot be removed) - this icon will appear when the Enable auto configuration option is toggled to disable:
Changing Extension version
You can change the extension version that will be used in the next Application analysis by clicking the extension version drop down and selecting the version you require:
Click to enlarge
- The new version of an extension must be higher than the existing version.
- an Admin user may have implemented an extension strategy and therefore you may not be able to change the version of the extension, or the extension version you are looking for may not be available.
Filtering included extensions
You can filter extensions so that it is easier to see exactly what is being used:
Discovered | Show only Discovered extensions |
---|---|
Force Installed | Show only extensions that are Force Installed. |
Updates | Show only extensions where a newer version is available. |
Using the Change Forecast tool
The Change Forecast tool is provided at https://extend.castsoftware.com/change-forecast/ to help you prepare for an upgrade of a given extension. The tool provides the ability to choose two extension releases (i.e. the current extension you are using and the target extension you want to upgrade to) and view the changes that have occurred between the two releases. Knowing what has changed enables you to understand the impacts of upgrading your extension release on your existing analysis results. Changes inlude updates such as:
- resolved issues
- new features
- other modifications
Console has a built in utility that will allow you to consult the Change Forecast tool directly from the Console interface. Click the "i" icon highlighted below:
This icon will load the Change Forecast tool in your browser (external access to https://extend.castsoftware.com is required), with a list of the extensions that have updates available. This allows you to view the changes that have been added in the updated releases of the extensions:
Working with available extensions
When working within the Extensions option, click the Available tab to view the extensions that have not been used in an analysis, but can be included manually if you wish. You can now view a list of additional extensions that can be included and activated when you analyze and generate a snapshot:
Include an available extension
First select the Application Version you want to include the extension in - the most recent will be displayed by default:
Then choose the extension version you require by clicking the extension version drop down and selecting the appropriate version:
Click to enlarge
Click INCLUDE to include the extension in the chosen Application version. The extension will then be visible in the Included tab for the specific version you chose. When you analyze and generate a snapshot for this Application version, the extension will be installed and used:
Filtering available extensions
You can filter the type of extension you want to install:
See the following for more information about the filters:
Troubleshooting
If you are facing errors during the "install extensions" step, it is possible that the folder used to store the extensions on the Node may be corrupt, for example:
INF: 2022-09-17 20:28:14: Downloading extension 'com.castsoftware.typescript.1.10.1-funcrel' ExtensionDownloder 2.0.0 c CAST 2019 Root element is missing. ERR: 2022-09-17 20:28:21: Unable to download extension 'com.castsoftware.typescript.1.10.1-funcrel'. Return code from Extension Downloader: 1 ERR: 2022-09-17 20:28:21: Unable to download extensions com.castsoftware.aip.node.jobs.steps.analysis.ExtensionDownloadException: Failed to download the extension 'com.castsoftware.typescript.1.10.1-funcrel'
The storage folder is located here by default (but may be located in a different place in your own environment):
%PROGRAMDATA%\CAST\CAST\Extensions
To try to resolve the error, you can rename the "Extensions" folder (for example to "Extensions_old") and then create a brand new empty "Extensions" folder. Doing this will force Console to download all the required extensions again but this may impact overall performance of the analysis.