Skip to main content
Version: Next

Transfer

The Transfer file will specify the processing steps needed to collect, augment, filter, report, and bundle components.

A Hoppr specific YAML file that defines how to run a series of stages and plugins used to collect, process, and bundle components.

Default Component Coverage​

There are configuration options to define how frequently you want each SBOM component to be processed using the default_component_coverage variable.

VariableDescription
OPTIONALProcessing is optional, but can be any number of times
EXACTLY_ONCEThe component will be processed exactly one time
AT_LEAST_ONCEThe component has to be processed at least once, but can be more
NO_MORE_THAN_ONCEThe component can be processed either once or 0 times

Specifying Plugins​

Users have the ability to specify plugins in the transfer file in three ways:

  • Short module name: collect_pypi_plugin
  • Plugin class name: CollectPypiPlugin
  • Full module path: hoppr.core_plugins.collect_pypi_plugin

Example transfer.yml​

---
schemaVersion: v1
kind: Transfer

stages:
Collect:
plugins:
- name: hoppr.core_plugins.collect_docker_plugin
- name: hoppr.core_plugins.collect_git_plugin
- name: hoppr.core_plugins.collect_helm_plugin
- name: hoppr.core_plugins.collect_maven_plugin
- name: hoppr.core_plugins.collect_pypi_plugin
config:
pip_command: pip3
- name: hoppr.core_plugins.collect_raw_plugin
Bundle:
plugins:
- name: hoppr.core_plugins.bundle_tar
config:
tarfile_name: ~/tarfile.tar.gz

max_processes: 3

Transfer Fields​

The following provides a top level explanation of the fields available in the Transfer file.

metadata​

Provides information about the transfer file itself. All fields are optional.

NameDescription
nameTransfer file name
versionTransfer file version
descriptionTransfer file description

max_processes​

Specifies the max number of processes for Hoppr to utilize when running.

stages​

Specifies stages by name and which plugins to enable per stage.

Stage names are user specified, such as Collect and Bundle in the above example.

plugins​

Specifies the plugins and optional configuration values for each plugin in the stage.

NameDescription
namePlugin name, see Specifying Plugins
configMapping of configuration keys and values accepted by the plugin