FossID Documentation

FossID-DA Settings File

FossID-DA has the functionality to detect a custom settings file and apply the settings found in the file to the current analysis configuration. The file has to be named:

  • fossid-settings.toml

How it works?

The fossid-settings.toml file can be added in the root of the scan that will be analyzed:

├── scan_test_1
    ├── aclocal
    ├── bower.json
    ├── CHANGES.md
    ├── CMakeLists.txt
    ├── CHANGES.md
    ├── complier
    ├── composer.json
    ├── LICENSE.txt
    ├── fossid-settings.toml
    ├── package.json
    └── package-lock.json

This will be detected and all the settings found in it will update the scan configuration,

What settings can be set in fossid-settings.toml ?

As in the fossid.conf in fossid-settings.toml the following settings can be added:

1. List of dependency types that FDA should take into account when running dependency analysis:

[dependency-analysis]
# ["Maven", "PyPI", "Gem", "Composer", "NPM", etc]
# To process all dependency types use: ["ALL"]
supported_package_managers = ["ALL"]

2. Dependency manager versions settings:

[dependency-analysis.system_settings]
# win32, win64, darwin, debian, unix
da_os_type = "linux" 
da_python_version = "3.11.4"
da_npm_version="7.24.2"
da_node_version="14.21.3"
da_ruby_version = "3.2.2"
da_gem_version = "3.0.3"
da_maven_version = "3.9.2"
da_scala_version = "2.11"
da_cocoapod_version="1.15.2"
da_swift_version="5.10"
da_dotnet_framework=".NETFramework4.5"
da_dotnet_standard=".NETStandard1.3"

3. Download settings (used with deep scan mode):

[dependency-analysis.download_options]
da_download_path = "/tmp/fossid-da"

4. Scan settings:

[dependency-analysis.scan_options]
da_ignore_lock_manifests = 0
da_single_dependency_versions = 1
da_only_unmanaged = 0
da_allow_dynamic_scopes = 1
da_allow_archive_scanning = 1
da_deep_scan = 0
da_accept_pre_releases = 0
da_allow_node_modules_processing = 0
da_ignore_hidden_files = 1
da_allow_user_agent = 1
da_use_yarn = 0

5. Import scan settings:

[dependency-analysis.import_scan_options]
da_cpp_import_search = 1
da_py_import_search = 0
da_go_import_search = 0

6. Git settings:

[dependency-analysis.git_options]
da_git_user = ""
da_git_token = ""

8. Dependency scope settings:

[dependency-analysis.dependency_scopes]
# Process test scopes. Different project types.
da_ds_test_dependencies=0

# Process development scopes. Different project types.
da_ds_dev_dependencies=0

# Process peer dependencies scopes. Generally NPM projects.
da_ds_peer_dependencies=0

# Process plugin dependencies scopes. Generally Maven projects.
da_ds_plugin_dependencies=0

# Process extensions dependencies scopes. Generally Maven projects.
da_ds_extensions_dependencies=0

# Process provided dependencies scopes. Generally Maven projects.
da_ds_provided_dependencies=0

# Process runtime dependencies scopes. Generally Maven and Gem projects.
da_ds_runtime_dependencies=1

# Process library dependencies scopes. Generally Maven projects.
da_ds_library_dependencies=0

# Process optional dependencies scopes. Different project types.
da_ds_optional_dependencies=0

# Process dependency_overrides dependencies scopes. Generally Dart/Pub projects.
da_ds_dependency_overrides=0

# Process framework dependencies scopes. Generally C/C++ projects.
da_ds_framework=1

# Process classpath dependencies scopes. Generally Maven projects.
da_ds_classpath_dependencies=0

# Process ext scopes. Generally PHP/Composer projects
da_ds_ext_dependencies=0

# Process indirect/transitive scopes. Generally Go projects
da_ds_indirect_dependencies=0

# Process hatch evns. Generally Hatch projects
# Comma separated evns. Ex: "default,lint"
da_ds_hatch_envs=""

9. Dependency graph settings:

[dependency-analysis.graph_depth]
da_gd_maven = 5
da_gd_pypi = 4
da_gd_gem = 7
da_gd_cargo = 4
da_gd_cocoapod = 4
da_gd_npm = 10
da_gd_general = 4
da_gd_go = 2

10. Ignore settings:

[dependency-analysis.ignore_settings]
da_ignore_folders = ""

11. Proxy settings:

[dependency-analysis.proxy_settings]
# Activate proxy usage
da_use_proxy = 0

# Your proxy hostname or IP
da_proxy_host = ""

# Your proxy port (i.e. 8080)
da_proxy_port = ""

# Your proxy username
da_proxy_user = ""

# Your proxy password (plain text), or
da_proxy_pass = ""

# Your SSL proxy client certificate
da_proxy_cert = ""

# Your private key for SSL and TLS proxy client certificate
da_proxy_key = ""

INFO: More info about dependency filtering can be found in FossID-DA-Filtering-Dependency-Types section.

INFO: More info about config settings can be found in FossID-DA-Config-Options section.