Dependency Management
Python dependencies in CSLE are managed with PyPi and JavaScript dependencies are managed with npm.
The Python dependencies are defined in the following files:
csle/simulation-system/libs/csle-base/requirements.txtcsle/simulation-system/libs/csle-base/requirements_dev.txtcsle/simulation-system/libs/csle-base/setup.cfgcsle/simulation-system/libs/csle-agents/requirements.txtcsle/simulation-system/libs/csle-agents/requirements_dev.txtcsle/simulation-system/libs/csle-agents/setup.cfgcsle/simulation-system/libs/csle-attacker/requirements.txtcsle/simulation-system/libs/csle-attacker/requirements_dev.txtcsle/simulation-system/libs/csle-attacker/setup.cfgcsle/simulation-system/libs/csle-cli/requirements.txtcsle/simulation-system/libs/csle-cli/requirements_dev.txtcsle/simulation-system/libs/csle-cli/setup.cfgcsle/simulation-system/libs/csle-cluster/requirements.txtcsle/simulation-system/libs/csle-cluster/requirements_dev.txtcsle/simulation-system/libs/csle-cluster/setup.cfgcsle/simulation-system/libs/csle-collector/requirements.txtcsle/simulation-system/libs/csle-collector/requirements_dev.txtcsle/simulation-system/libs/csle-collector/setup.cfgcsle/simulation-system/libs/csle-common/requirements.txtcsle/simulation-system/libs/csle-common/requirements_dev.txtcsle/simulation-system/libs/csle-common/setup.cfgcsle/simulation-system/libs/csle-defender/requirements.txtcsle/simulation-system/libs/csle-defender/requirements_dev.txtcsle/simulation-system/libs/csle-defender/setup.cfgcsle/simulation-system/libs/csle-rest-api/requirements.txtcsle/simulation-system/libs/csle-rest-api/requirements_dev.txtcsle/simulation-system/libs/csle-rest-api/setup.cfgcsle/simulation-system/libs/csle-ryu/requirements.txtcsle/simulation-system/libs/csle-ryu/requirements_dev.txtcsle/simulation-system/libs/csle-ryu/setup.cfgcsle/simulation-system/libs/csle-system-identification/requirements.txtcsle/simulation-system/libs/csle-system-identification/requirements_dev.txtcsle/simulation-system/libs/csle-system-identification/setup.cfgcsle/simulation-system/libs/gym-csle-stopping-game/requirements.txtcsle/simulation-system/libs/gym-csle-stopping-game/requirements_dev.txtcsle/simulation-system/libs/gym-csle-stopping-game/setup.cfgcsle/simulation-system/libs/gym-csle-apt-game/requirements.txtcsle/simulation-system/libs/gym-csle-apt-game/requirements_dev.txtcsle/simulation-system/libs/gym-csle-apt-game/setup.cfgcsle/simulation-system/libs/gym-csle-cyborg/requirements.txtcsle/simulation-system/libs/gym-csle-cyborg/requirements_dev.txtcsle/simulation-system/libs/gym-csle-cyborg/setup.cfg-csle/simulation-system/libs/gym-csle-intrusion-response-game/requirements.txtcsle/simulation-system/libs/gym-csle-intrusion-response-game/requirements_dev.txtcsle/simulation-system/libs/gym-csle-intrusion-response-game/setup.cfgcsle/simulation-system/libs/csle-tolerance/requirements.txtcsle/simulation-system/libs/csle-tolerance/requirements_dev.txtcsle/simulation-system/libs/csle-tolerance/setup.cfgcsle/simulation-system/libs/csle-attack-profiler/requirements.txtcsle/simulation-system/libs/csle-attack-profiler/requirements_dev.txtcsle/simulation-system/libs/csle-attack-profiler/setup.cfg
These files need to be updated whenever a Python dependency is added or removed. The dependency structure among the CSLE Python libraries is shown in Fig. 31.
Figure 31: Dependency graph showing the dependencies among the CSLE Python libraries; an arrow from X to Y indicates that X depends on Y; dependency arrows are transitive.
JavaScript dependencies are defined in the file csle/management-system/csle-mgmt-webapp/package.json.
This file should be updated whenever a JavaScript dependency is added or removed.