Bootstrap options

interface BootstrapOptions {
    configFiles?: string[];
    consumer?: boolean;
    loadPackage?: boolean;
    loadReadme?: string | boolean;
    preset?: string;
    presetFiles?: string[];
    useEnvironment?: boolean;
}

Properties

configFiles?: string[]

List of files with deploying options to be loaded. The entries could be a file path or glob pattern. It supports configurations in JSON, YAML, TOML, and .env file formats.

`['./config/*.json']`
`['./config/logger.json', './config/metadata.yaml']`
consumer?: boolean

Flag indicating if the OpenC2 Consumer command interface should be enabled. The command interface is a set of commands that can be used to interact with the application. The commands are exposed in the observability endpoints and can be used to interact with the service, or, if a consumer adapter is configured, to interact with the service from a central controller.

loadPackage?: boolean

Flag indicating that the package.json file should be loaded. If this flag is set to true, the the module will scale parent directories looking for a package.json file to load, if the file is found, the package information will be used to fullfil the metadata field.

  • package.name will be used as the metadata.name.
  • package.version will be used as the metadata.version, and the first part of the version will be used as the metadata.release.
  • package.description will be used as the metadata.description.
  • package.keywords will be used as the metadata.tags.
  • package.config.${name}, where name is the name of the configuration, will be used to find the rest of properties with the same name that in the metadata. This information will be merged with the rest of the configuration, overriding the configuration from files, but not the configuration passed as argument to Service Registry.
loadReadme?: string | boolean

Flag indicating that the README.md file should be loaded. If this flag is set to true, the module will scale parent directories looking for a README.md file to load, if the file is found, the README content will be exposed in the observability endpoints. If the flag is a string, the string will be used as the file name to look for.

preset?: string

Preset to be used as configuration base, if none is indicated, or the indicated preset is not found, the configuration from the configuration files will be used.

presetFiles?: string[]

List of files with preset options to be loaded. The entries could be a file path or glob pattern. The first part of the file name will be used as the preset name. The file name should be in the format of presetName.config.json or presetName.config.yaml. The name of the preset will be used to merge different files in order to create a single preset.

`['./config/presets/*.json']`
`['./config/presets/*.json', './config/presets/*.yaml']`
`['./config/presets/*.json', './config/presets/*.yaml', './config/presets/*.yml']`
useEnvironment?: boolean

Flag indicating that the environment configuration variables should be used. The configuration loaded by environment variables will be merged with the rest of the configuration, overriding the configuration from files, but not the configuration passed as argument to Service Registry. When option is set some filters are applied to the environment variables to avoid conflicts in the configuration. The filters are:

  • CONFIG_METADATA_: Application metadata configuration.
  • CONFIG_OBSERVABILITY_: Observability service configuration.
  • CONFIG_LOGGER_: Logger configuration.
  • CONFIG_RETRY_OPTIONS_: Retry options configuration.
  • CONFIG_ADAPTER_: Consumer adapter configuration.

The loader expect environment configuration variables represented in SCREAMING_SNAKE_CASE, that will parsed to camelCase and merged with the rest of the configuration. The consumer adapter configuration is an exception, due to the kind of configuration, it should be provided by configuration parameters.

CONFIG_METADATA_NAME=MyApp
CONFIG_METADATA_LINKS__SELF=https://myapp.com
CONFIG_OBSERVABILITY_PORT=8080
CONFIG_LOGGER__CONSOLE__LEVEL=info
CONFIG_RETRY_OPTIONS_ATTEMPTS=3
CONFIG_ADAPTER_TYPE=redis