Summary: this page describes how to configure the Node storage folder locations. This is an optional but recommended step in the installation configuration process.

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.

Changing folder locations with onboarded Applications

Whilst it is technically possible to change the folder locations once an Application has been onboarded, please be aware of the following if you choose to do so:

  • Changing the Delivery folder location is NOT supported and will break your existing Application
  • Changing the Deployment folder will cause added/deleted objects to be recorded in subsequent snapshots
  • Changing the File Upload folder requires that you copy the content from the previous location and then reconfigure each item in the Application itself.
  • BackupSherlock, Logs and LISA/LTSA folders can be changed with no impact (existing items will remain in the old location).

Reusing folders configured for use with Applications onboarded in CAST Management Studio (existing customers)

Whilst it is technically possible to re-use folders configured for use with Applications onboarded in CAST Management Studio (and therefore mix data from Console with data from CAST Management Studio) this is not supported mainly due to the different Delivery folder structure used in Console. The one exception to this is when you Import an Application managed with CAST Management Studio into AIP Console where a specific process exists.

All storage folders are created the first time that Console accesses them (i.e. they are not created during the installation process), unless they exist already.

≥ 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

Delivery

C:/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/CASTMS

Location 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/CASTMS

Location 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/CASTMS

Location 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.

The CastGlobalSettings.ini file ALSO contains values for Delivery, Deploy, LISA and LTSA as shown in the example below:

; 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

; Set the default delivery folder location
; CAST_DEFAULT_DELIVERY_DIR=%SystemDrive%\CASTMS\Delivery

; Set the default deploy folder location
; CAST_DEFAULT_DEPLOY_DIR=%SystemDrive%\CASTMS\Deploy

These locations are overridden by the locations defined in the %PROGRAMDATA%/CAST/AipConsole/AipNode/aip-node-app.properties file on the Node UNLESS the CastGlobalSettings.ini file contains any custom values. The following items in CastGlobalSettings.ini file are no longer used:

; Set program files common files' path
; CAST_PROGRAM_FILES_COMMON_PATH=%CommonProgramFiles%\CAST\CAST\$CAST_MAJOR_VERSION$.$CAST_MINOR_VERSION$\

; Set unversioned program files common files' path
; CAST_PROGRAM_FILES_COMMON_UNVERSIONED_PATH=%CommonProgramFiles%\CAST\CAST\

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 a Node 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.

  • If a drive is mapped with subst, the config should be manually added to map-drives.bat, for example:
REM Map drives with 'subst'
subst z: /d
subst z: c:\folder\example
  • If different Windows user logins are used for the scenarios listed below, then it is possible to edit map-drives.bat and add the required mapped drive locations via the net use command (example available in the batch file). This will ensure that any required mapped drives are available to the Node:
    • access the mapped drives (connect using different credentials is ticked for example)
    • run the Node Windows Service