Configure AIP Node storage folder locations - optional - v. 1.x

Introduction

Each Node that is managed by Console requires a set of storage folders that are used to store items related to each Application onboarded and analyzed with the specific Node via the Console. Currently the following storage folders are required on each Node and they will be set to a default location as listed below.

This means that “out of the box”, the storage folders will be located on the Node itself and if you are happy with this location, you do not need to make any changes.

If you prefer to locate these storage folders elsewhere, for example a common/shared network folder (highly recommended), or on another folder/drive on the Node, you can change where these folders are located, as described below. CAST highly recommends that this is done as part of the installation process before any Applications are onboarded or imported. Note that:

  • some CAST analyzers do have a limit of 260 characters for the length of the path used for the Deployment folder, therefore it may be beneficial to use a mapped drive (see Note below) for this folder to reduce the path length
  • if you have multiple Nodes, CAST highly recommends using a common/shared network folder for all Nodes - but ensure that a separate sub-folder is used for each type of storage folder, i.e. S:/delivery, S:/deploy etc.

≥ 1.20.x storage locations

TypeDefault locationDescriptionDefined by

Delivery

%PROGRAMDATA%/CAST/AipConsole/AipNode/deliveryUsed for storing successive and compressed versions of an application's source code produced during the source code delivery phase.%PROGRAMDATA%\CAST\AipConsole\AipNode\aip-node-app.properties on the Node
Deployment%PROGRAMDATA%/CAST/AipConsole/AipNode/deployUsed for storing the most recent version of the Application's source code for analysis in uncompressed format.
File Upload%PROGRAMDATA%/CAST/AipConsole/AipNode/uploadUser for storing miscellaneous items required for an Application analysis. For example Dynamic Link rule files.
Backup%PROGRAMDATA%/CAST/AipConsole/AipNode/backupUsed for storing backups of the Application made from Console - see Administration Center - Applications - Application Details.
Sherlock%PROGRAMDATA%/CAST/AipConsole/AipNode/sherlockUsed for storing Sherlock exports of the Application made from Console - see Administration Center - Applications - Application Details.
Analysis Logs%PROGRAMDATA%/CAST/CAST/LogsUsed for storing all logs produced by the Node with regard to code delivery/analysis/snapshot activities. One sub-folder folder will be created per Application onboarded in Console.%PROGRAMFILES%\CAST\8.x\CastGlobalSettings.ini on the Node
Analysis folders LISA

%PROGRAMDATA%/CAST/CAST/CASTMS/LISA


Location to store temporary files generated during the analysis/snapshot process on the Node.

Analysis folders LTSA%PROGRAMDATA%/CAST/CAST/CASTMS/LTSA
CAST_PLUGINS_ROOT_PATH

%PROGRAMDATA%/CAST/CAST/Extensions

Location used to store Extensions used during an analysis. See also Changing extension storage location on Node.

CAST_ALL_USERS_PATH

%PROGRAMDATA%/CAST/CAST/$CAST_MAJOR_VERSION$.$CAST_MINOR_VERSION$

Configuration files that are shared among all users of the server:

  • User Input Security blackboxes files
  • legacy AIP Core applications (such as CAST Server Manager) 
CAST_CURRENT_USER_WORK_PATH

%APPDATA%/CAST/CAST/$CAST_MAJOR_VERSION$.$CAST_MINOR_VERSION$

Configuration files for legacy AIP Core applications (such as CAST Server Manager) that are specific to the current logged in user on the Node.

CAST recommends that you avoid modifying this value unless you ensure that either only one user is using this installation, or each user has its own path based on an environment variable.

CAST_CURRENT_USER_TEMP_PATH

%TEMP%/CAST/CAST/$CAST_MAJOR_VERSION$.$CAST_MINOR_VERSION$

Miscellaneous temporary files for legacy AIP Core applications . Some files may be quite large. Specific to the current logged in user.

1.19.x storage locations

Click here to expand…

Node package install wizard set to a location in %PROGRAMFILES%:

TypeDefault locationDescription
DeliveryC:/CASTMS/deliveryUsed for storing successive and compressed versions of an application’s source code produced during the source code delivery phase.
DeploymentC:/CASTMS/deployUsed for storing the most recent version of the Application’s source code for analysis in uncompressed format.
File Upload%PROGRAMDATA%/CAST/AipConsole/AipNode/uploadUser for storing miscellaneous items required for an Application analysis. For example Dynamic Link rule files.
Backup%PROGRAMDATA%/CAST/AipConsole/AipNode/backupUsed for storing backups of the Application made from Console - see Administration Center - Applications - Application Details.
Sherlock%PROGRAMDATA%/CAST/AipConsole/AipNode/sherlockUsed for storing Sherlock exports of the Application made from Console - see Administration Center - Applications - Application Details.
Analysis Logs%PROGRAMDATA%/CAST/CAST/LogsUsed for storing all logs produced by the Node with regard to code delivery/analysis/snapshot activities. One sub-folder folder will be created per Application onboarded in Console.
Analysis folders LISA/LTSA%PROGRAMDATA%/CAST/CAST/CASTMSLocation to store temporary files generated during the analysis/snapshot process on the Node.

Node package install wizard set to a custom location:

TypeDefault locationDescription
Delivery<Node_install_folder>/AipNode/data/deliveryUsed for storing successive and compressed versions of an application’s source code produced during the source code delivery phase.
Deployment<Node_install_folder>/AipNode/data/deployUsed for storing the most recent version of the Application’s source code for analysis in uncompressed format.
File Upload<Node_install_folder>/AipNode/data/uploadUser for storing miscellaneous items required for an Application analysis. For example Dynamic Link rule files.
Backup<Node_install_folder>/AipNode/data/backupUsed for storing backups of the Application made from Console - see Administration Center - Applications - Application Details.
Sherlock<Node_install_folder>/AipNode/data/sherlockUsed for storing Sherlock exports of the Application made from Console - see Administration Center - Applications - Application Details.
Analysis Logs%PROGRAMDATA%/CAST/CAST/LogsUsed for storing all logs produced by the Node with regard to code delivery/analysis/snapshot activities. One sub-folder folder will be created per Application onboarded in Console.
Analysis folders LISA/LTSA%PROGRAMDATA%/CAST/CAST/CASTMSLocation to store temporary files generated during the analysis/snapshot process on the Node.

≤ 1.18.x storage locations

Click here to expand…

TypeDefault locationDescription
Delivery<Node_install_folder>/AipNode/data/deliveryUsed for storing successive and compressed versions of an application’s source code produced during the source code delivery phase.
Deployment<Node_install_folder>/AipNode/data/deployUsed for storing the most recent version of the Application’s source code for analysis in uncompressed format.
File Upload<Node_install_folder>/AipNode/data/uploadUser for storing miscellaneous items required for an Application analysis. For example Dynamic Link rule files.
Backup<Node_install_folder>/AipNode/data/backupUsed for storing backups of the Application made from Console - see Administration Center - Applications - Application Details.
Sherlock<Node_install_folder>/AipNode/data/sherlockUsed for storing Sherlock exports of the Application made from Console - see Administration Center - Applications - Application Details.
Analysis Logs%PROGRAMDATA%/CAST/CAST/LogsUsed for storing all logs produced by the Node with regard to code delivery/analysis/snapshot activities. One sub-folder folder will be created per Application onboarded in Console.
Analysis folders LISA/LTSA%PROGRAMDATA%/CAST/CAST/CASTMSLocation to store temporary files generated during the analysis/snapshot process on the Node.

Configure the storage folder locations

aip-node-app.properties

Remotely connect (for example using Remote Desktop) to the Node whose storage folder locations you would like change and then edit the following file with a text editor:

%PROGRAMDATA%/CAST/AipConsole/AipNode/aip-node-app.properties

Locate the following section in the file:

# =============================
# Storage folders location
# -----------------------------
delivery.folder.location=C:/ProgramData/CAST/AipConsole/AipNode/delivery
deployment.folder.location=C:/ProgramData/CAST/AipConsole/AipNode/deploy
fileupload.folder.location=C:/ProgramData/CAST/AipConsole/AipNode/upload
backup.file.location=C:/ProgramData/CAST/AipConsole/AipNode/backup
sherlock.file.location=C:/ProgramData/CAST/AipConsole/AipNode/sherlock

Make any changes you require, for example to change all the folders to use a mapped network drive:

# =============================
# Storage folders location
# -----------------------------
delivery.folder.location=S:/delivery
deployment.folder.location=S:/deploy
fileupload.folder.location=S:/upload
backup.file.location=S:/backup
sherlock.file.location=S:/sherlock

Save the file when your changes are complete and repeat for each Node you would like to change. Finally ensure that you restart the Node service so that the changes are taken into account.

Required path syntax for .properties file

The paths entered into the .properties file must use the following syntax:

Path typeRequired syntaxExamples
UNC network pathBack slashes escaped with a back slash.\\\\server\\some\\path
Local pathForward slashes, not escaped, or back slashes escaped with a back slash.

D:/CAST/some/path

D:\\CAST\\some\\path

Mapped drive

Forward slashes, not escaped, or back slashes escaped with a back slash.

Please see note below about using mapped drives and the Node Windows Service.

S:/some/path

S:\\some\\path

CastGlobalSettings.ini

Remotely connect (for example using Remote Desktop) to the Node whose storage folder locations you would like change and then edit the following file (located in the AIP Core installation folder) with a text editor:

%PROGRAMFILES%/CAST/<version>/CastGlobalSettings.ini

Locate the following sections in the file:

; Set All users' path
; CAST_ALL_USERS_PATH=%ProgramData%\CAST\CAST\$CAST_MAJOR_VERSION$.$CAST_MINOR_VERSION$\

; Set current user's path
; CAST_CURRENT_USER_WORK_PATH=%APPDATA%\CAST\CAST\$CAST_MAJOR_VERSION$.$CAST_MINOR_VERSION$\

; Set current user's temporary path
; CAST_CURRENT_USER_TEMP_PATH=%TEMP%\CAST\CAST\$CAST_MAJOR_VERSION$.$CAST_MINOR_VERSION$\

; Set folder containing plugins
; CAST_PLUGINS_ROOT_PATH=%ProgramData%\CAST\CAST\Extensions\

; Set root path of all CAST logs
; CAST_LOG_ROOT_PATH=%ProgramData%\CAST\CAST\Logs\

; Set the default LISA location
; CAST_DEFAULT_LISA_DIR=%ProgramData%\CAST\CAST\CASTMS

; Set the default LTSA location
; CAST_DEFAULT_LTSA_DIR=%ProgramData%\CAST\CAST\CASTMS

Make any changes you require, for example to change some of the folders to use a mapped network drive. Ensure you uncomment the option by removing the semi-colon (;) :

; Set root path of all CAST logs
CAST_LOG_ROOT_PATH=S:\Logs\

; Set the default LISA location
CAST_DEFAULT_LISA_DIR=S:\LISA

; Set the default LTSA location
CAST_DEFAULT_LTSA_DIR=S:\LTSA

Save the file when your changes are complete and repeat for each Node you would like to change. Finally ensure that you restart the Node service so that the changes are taken into account.

Notes about using Mapped drives and Node Windows Service

While using Mapped drives for the Node storage locations is supported, the Node can sometimes have difficulty accessing these storage locations when the Node is configured to run as a Windows Service. For the most part, these difficulties are caused by the context (i.e. the Windows user login) which is:

  • configured to access the mapped drives
  • configured to run the Node Windows Service

When aNode is started the storage folder locations/paths are checked to ensure that they can be accessed. Even if the mapped drives in the current Windows session are configured to use the current Windows user login and can therefore be accessed by Windows File Explorer without issue and even if the Windows Service that is running the Node is configured to use the same user login as is used for the mapped drives in the current Windows session, the mapped drives may still appear to be “unavailable” to the Node. To remediate this issue, the following batch file will be run automatically when the Node is started (whether as a Windows service or using the .bat file) AND when a mapped drive has been configured for a Node storage folder AND this drive is “unavailable”:

<Node_install_folder>/AipNode/tools/map-drives.bat

This batch file will automatically scan (using the Windows net use command) all mapped drives that exist in the current Windows session. If any are “unavailable”, the batch file will remap them for the duration of the Windows session using the Windows user login configured to run the Node Windows Service therefore ensuring that they can be accessed by the Node. Obviously, the Windows user login configured to run the  Node Windows Service must already have access to the mapped drive location, otherwise the mapped drives will remain unavailable.