Skip to content

API Server

CORS

alpine.cors.allow.credentials

Controls the content of the Access-Control-Allow-Credentials response header.
Has no effect when alpine.cors.enabled is false.

Required false
Type boolean
Default true
ENV ALPINE_CORS_ALLOW_CREDENTIALS

alpine.cors.allow.headers

Controls the content of the Access-Control-Allow-Headers response header.
Has no effect when alpine.cors.enabled is false.

Required false
Type string
Default Origin, Content-Type, Authorization, X-Requested-With, Content-Length, Accept, Origin, X-Api-Key, X-Total-Count, *
ENV ALPINE_CORS_ALLOW_HEADERS

alpine.cors.allow.methods

Controls the content of the Access-Control-Allow-Methods response header.
Has no effect when alpine.cors.enabled is false.

Required false
Type string
Default GET POST PUT DELETE OPTIONS
ENV ALPINE_CORS_ALLOW_METHODS

alpine.cors.allow.origin

Controls the content of the Access-Control-Allow-Origin response header.
Has no effect when alpine.cors.enabled is false.

Required false
Type string
Default *
ENV ALPINE_CORS_ALLOW_ORIGIN

alpine.cors.enabled

Defines whether Cross Origin Resource Sharing (CORS) headers shall be included in REST API responses.

Required false
Type boolean
Default true
ENV ALPINE_CORS_ENABLED

alpine.cors.expose.headers

Controls the content of the Access-Control-Expose-Headers response header.
Has no effect when alpine.cors.enabled is false.

Required false
Type string
Default Origin, Content-Type, Authorization, X-Requested-With, Content-Length, Accept, Origin, X-Api-Key, X-Total-Count
ENV ALPINE_CORS_EXPOSE_HEADERS

alpine.cors.max.age

Controls the content of the Access-Control-Max-Age response header.
Has no effect when alpine.cors.enabled is false.

Required false
Type integer
Default 3600
ENV ALPINE_CORS_MAX_AGE

Database

alpine.database.password

Specifies the password to use when authenticating to the database.

Required false
Type string
Default dtrack
ENV ALPINE_DATABASE_PASSWORD

alpine.database.pool.enabled

Specifies if the database connection pool is enabled.

Required false
Type boolean
Default true
ENV ALPINE_DATABASE_POOL_ENABLED

alpine.database.pool.idle.timeout

This property controls the maximum amount of time that a connection is allowed to sit idle in the pool. The property can be set globally for both transactional and non-transactional connection pools, or for each pool type separately. When both global and pool-specific properties are set, the pool-specific properties take precedence.

Required false
Type integer
Default 300000
ENV ALPINE_DATABASE_POOL_IDLE_TIMEOUT

alpine.database.pool.max.lifetime

This property controls the maximum lifetime of a connection in the pool. An in-use connection will never be retired, only when it is closed will it then be removed. The property can be set globally for both transactional and non-transactional connection pools, or for each pool type separately. When both global and pool-specific properties are set, the pool-specific properties take precedence.

Required false
Type integer
Default 600000
ENV ALPINE_DATABASE_POOL_MAX_LIFETIME

alpine.database.pool.max.size

This property controls the maximum size that the pool is allowed to reach, including both idle and in-use connections. The property can be set globally for both transactional and non-transactional connection pools, or for each pool type separately. When both global and pool-specific properties are set, the pool-specific properties take precedence.

Required false
Type integer
Default 20
ENV ALPINE_DATABASE_POOL_MAX_SIZE

alpine.database.pool.min.idle

This property controls the minimum number of idle connections in the pool. This value should be equal to or less than alpine.database.pool.max.size. Warning: If the value is less than alpine.database.pool.max.size, alpine.database.pool.idle.timeout will have no effect. The property can be set globally for both transactional and non-transactional connection pools, or for each pool type separately. When both global and pool-specific properties are set, the pool-specific properties take precedence.

Required false
Type integer
Default 10
ENV ALPINE_DATABASE_POOL_MIN_IDLE

alpine.database.pool.nontx.idle.timeout

Required false
Type integer
Default ${alpine.database.pool.idle.timeout}
ENV ALPINE_DATABASE_POOL_NONTX_IDLE_TIMEOUT

alpine.database.pool.nontx.max.lifetime

Required false
Type integer
Default ${alpine.database.pool.max.lifetime}
ENV ALPINE_DATABASE_POOL_NONTX_MAX_LIFETIME

alpine.database.pool.nontx.max.size

Required false
Type integer
Default ${alpine.database.pool.max.size}
ENV ALPINE_DATABASE_POOL_NONTX_MAX_SIZE

alpine.database.pool.nontx.min.idle

Required false
Type integer
Default ${alpine.database.pool.min.idle}
ENV ALPINE_DATABASE_POOL_NONTX_MIN_IDLE

alpine.database.pool.tx.idle.timeout

Required false
Type integer
Default ${alpine.database.pool.idle.timeout}
ENV ALPINE_DATABASE_POOL_TX_IDLE_TIMEOUT

alpine.database.pool.tx.max.lifetime

Required false
Type integer
Default ${alpine.database.pool.max.lifetime}
ENV ALPINE_DATABASE_POOL_TX_MAX_LIFETIME

alpine.database.pool.tx.max.size

Required false
Type integer
Default ${alpine.database.pool.max.size}
ENV ALPINE_DATABASE_POOL_TX_MAX_SIZE

alpine.database.pool.tx.min.idle

Required false
Type integer
Default ${alpine.database.pool.min.idle}
ENV ALPINE_DATABASE_POOL_TX_MIN_IDLE

alpine.database.url

Specifies the JDBC URL to use when connecting to the database.

Required true
Type string
Default null
Example jdbc:postgresql://localhost:5432/dtrack
ENV ALPINE_DATABASE_URL

alpine.database.username

Specifies the username to use when authenticating to the database.

Required false
Type string
Default dtrack
ENV ALPINE_DATABASE_USERNAME

database.migration.password

Defines the database password for executing migrations. If not set, the value of alpine.database.password will be used.

Required false
Type string
Default ${alpine.database.password}
ENV DATABASE_MIGRATION_PASSWORD

database.migration.url

Defines the database JDBC URL to use when executing migrations. If not set, the value of alpine.database.url will be used. Should generally not be set, unless TLS authentication is used, and custom connection variables are required.

Required false
Type string
Default ${alpine.database.url}
ENV DATABASE_MIGRATION_URL

database.migration.username

Defines the database user for executing migrations. If not set, the value of alpine.database.username will be used.

Required false
Type string
Default ${alpine.database.username}
ENV DATABASE_MIGRATION_USERNAME

database.run.migrations

Defines whether database migrations should be executed on startup.

Required false
Type boolean
Default true
ENV DATABASE_RUN_MIGRATIONS

Development

dev.services.enabled

Whether dev services shall be enabled.

When enabled, Dependency-Track will automatically launch containers for:

  • Frontend
  • Kafka
  • PostgreSQL
at startup, and configures itself to use them. They are disposed when Dependency-Track stops. The containers are exposed on randomized ports, which will be logged during startup.

Trying to enable dev services in a production build will prevent the application from starting.

Note that the containers launched by the API server can not currently be discovered and re-used by other Hyades services. This is a future enhancement tracked in https://github.com/DependencyTrack/hyades/issues/1188.

Required false
Type boolean
Default false
ENV DEV_SERVICES_ENABLED

dev.services.image.frontend

The image to use for the frontend dev services container.

Required false
Type string
Default ghcr.io/dependencytrack/hyades-frontend:snapshot
ENV DEV_SERVICES_IMAGE_FRONTEND

dev.services.image.kafka

The image to use for the Kafka dev services container.

Required false
Type string
Default docker.redpanda.com/vectorized/redpanda:v24.1.7
ENV DEV_SERVICES_IMAGE_KAFKA

dev.services.image.postgres

The image to use for the PostgreSQL dev services container.

Required false
Type string
Default postgres:16
ENV DEV_SERVICES_IMAGE_POSTGRES

General

alpine.api.key.prefix

Defines the prefix to be used for API keys. A maximum prefix length of 251 characters is supported. The prefix may also be left empty.

Required false
Type string
Default odt_
ENV ALPINE_API_KEY_PREFIX

alpine.bcrypt.rounds

Specifies the number of bcrypt rounds to use when hashing a user's password. The higher the number the more secure the password, at the expense of hardware resources and additional time to generate the hash.

Required true
Type integer
Default 14
ENV ALPINE_BCRYPT_ROUNDS

alpine.data.directory

Defines the path to the data directory. This directory will hold logs, keys, and any database or index files along with application-specific files or directories.

Required true
Type string
Default ~/.dependency-track
ENV ALPINE_DATA_DIRECTORY

alpine.private.key.path

Defines the paths to the public-private key pair to be used for signing and verifying digital signatures. The keys will be generated upon first startup if they do not exist.

Required false
Type string
Default ${alpine.data.directory}/keys/private.key
Example /var/run/secrets/private.key
ENV ALPINE_PRIVATE_KEY_PATH

alpine.public.key.path

Defines the paths to the public-private key pair to be used for signing and verifying digital signatures. The keys will be generated upon first startup if they do not exist.

Required false
Type string
Default ${alpine.data.directory}/keys/public.key
Example /var/run/secrets/public.key
ENV ALPINE_PUBLIC_KEY_PATH

alpine.secret.key.path

Defines the path to the secret key to be used for data encryption and decryption. The key will be generated upon first startup if it does not exist.

Required false
Type string
Default ${alpine.data.directory}/keys/secret.key
ENV ALPINE_SECRET_KEY_PATH

bom.upload.processing.trx.flush.threshold

Defines the number of write operations to perform during BOM processing before changes are flushed to the database. Smaller values may lower memory usage of the API server, whereas higher values will improve performance as fewer network round-trips to the database are necessary.

Required false
Type integer
Default 10000
ENV BOM_UPLOAD_PROCESSING_TRX_FLUSH_THRESHOLD

integrity.check.enabled

Required false
Type boolean
Default false
ENV INTEGRITY_CHECK_ENABLED

integrity.initializer.enabled

Specifies whether the Integrity Initializer shall be enabled.

Required false
Type boolean
Default false
ENV INTEGRITY_INITIALIZER_ENABLED

tmp.delay.bom.processed.notification

Delays the BOM_PROCESSED notification until the vulnerability analysis associated with a given BOM upload is completed. The intention being that it is then "safe" to query the API for any identified vulnerabilities. This is specifically for cases where polling the /api/v1/bom/token/ endpoint is not feasible. THIS IS A TEMPORARY FUNCTIONALITY AND MAY BE REMOVED IN FUTURE RELEASES WITHOUT FURTHER NOTICE.

Required false
Type boolean
Default false
ENV TMP_DELAY_BOM_PROCESSED_NOTIFICATION

vulnerability.policy.analysis.enabled

Defines whether vulnerability policy analysis is enabled.

Required false
Type boolean
Default false
ENV VULNERABILITY_POLICY_ANALYSIS_ENABLED

vulnerability.policy.bundle.auth.password

For nginx server, if username and bearer token both are provided, basic auth will be used, else the auth header will be added based on the not null values Defines the password to be used for basic authentication against the service hosting the policy bundle.

Required false
Type string
Default null
ENV VULNERABILITY_POLICY_BUNDLE_AUTH_PASSWORD

vulnerability.policy.bundle.auth.username

Defines the username to be used for basic authentication against the service hosting the policy bundle.

Required false
Type string
Default null
ENV VULNERABILITY_POLICY_BUNDLE_AUTH_USERNAME

vulnerability.policy.bundle.bearer.token

Defines the token to be used as bearerAuth against the service hosting the policy bundle.

Required false
Type string
Default null
ENV VULNERABILITY_POLICY_BUNDLE_BEARER_TOKEN

vulnerability.policy.bundle.source.type

Defines the type of source from which policy bundles are being fetched from. Required when vulnerability.policy.bundle.url is set.

Required false
Type enum
Valid Values [nginx, s3]
Default NGINX
ENV VULNERABILITY_POLICY_BUNDLE_SOURCE_TYPE

vulnerability.policy.bundle.url

Defines where to fetch the policy bundle from.For S3, just the base url needs to be provided with port For nginx, the whole url with bundle name needs to be given

Required false
Type string
Default null
Example http://example.com:80/bundles/bundle.zip
ENV VULNERABILITY_POLICY_BUNDLE_URL

vulnerability.policy.s3.access.key

S3 related details. Access key, secret key, bucket name and bundle names are mandatory if S3 is chosen. Region is optional

Required false
Type string
Default null
ENV VULNERABILITY_POLICY_S3_ACCESS_KEY

vulnerability.policy.s3.bucket.name

Required false
Type string
Default null
ENV VULNERABILITY_POLICY_S3_BUCKET_NAME

vulnerability.policy.s3.bundle.name

Required false
Type string
Default null
ENV VULNERABILITY_POLICY_S3_BUNDLE_NAME

vulnerability.policy.s3.region

Required false
Type string
Default null
ENV VULNERABILITY_POLICY_S3_REGION

vulnerability.policy.s3.secret.key

Required false
Type string
Default null
ENV VULNERABILITY_POLICY_S3_SECRET_KEY

workflow.retention.duration

Defines the duration for how long workflow data is being retained, after all steps transitioned into a non-terminal state (CANCELLED, COMPLETED, FAILED, NOT_APPLICABLE). The duration must be specified in ISO8601 notation (https://en.wikipedia.org/wiki/ISO_8601#Durations).

Required false
Type duration
Default P3D
ENV WORKFLOW_RETENTION_DURATION

workflow.step.timeout.duration

Defines the duration for how long a workflow step is allowed to remain in PENDING state after being started. If this duration is exceeded, workflow steps will transition into the TIMED_OUT state. If they remain in TIMED_OUT for the same duration, they will transition to the FAILED state. The duration must be specified in ISO8601 notation (https://en.wikipedia.org/wiki/ISO_8601#Durations).

Required false
Type duration
Default PT1H
ENV WORKFLOW_STEP_TIMEOUT_DURATION

HTTP

alpine.http.proxy.address

HTTP proxy address. If set, then alpine.http.proxy.port must be set too.

Required false
Type string
Default null
Example proxy.example.com
ENV ALPINE_HTTP_PROXY_ADDRESS

alpine.http.proxy.password

Required false
Type string
Default null
ENV ALPINE_HTTP_PROXY_PASSWORD

alpine.http.proxy.port

Required false
Type integer
Default null
Example 8888
ENV ALPINE_HTTP_PROXY_PORT

alpine.http.proxy.username

Required false
Type string
Default null
ENV ALPINE_HTTP_PROXY_USERNAME

alpine.http.timeout.connection

Defines the connection timeout in seconds for outbound HTTP connections.

Required false
Type integer
Default 30
ENV ALPINE_HTTP_TIMEOUT_CONNECTION

alpine.http.timeout.pool

Defines the request timeout in seconds for outbound HTTP connections.

Required false
Type integer
Default 60
ENV ALPINE_HTTP_TIMEOUT_POOL

alpine.http.timeout.socket

Defines the socket / read timeout in seconds for outbound HTTP connections.

Required false
Type integer
Default 30
ENV ALPINE_HTTP_TIMEOUT_SOCKET

alpine.no.proxy

Required false
Type string
Default null
Example localhost,127.0.0.1
ENV ALPINE_NO_PROXY

Kafka

alpine.kafka.processor.epss.mirror.consumer.auto.offset.reset

Required true
Type enum
Valid Values [earliest, latest, none]
Default earliest
ENV ALPINE_KAFKA_PROCESSOR_EPSS_MIRROR_CONSUMER_AUTO_OFFSET_RESET

alpine.kafka.processor.epss.mirror.consumer.group.id

Required true
Type string
Default dtrack-apiserver-processor
ENV ALPINE_KAFKA_PROCESSOR_EPSS_MIRROR_CONSUMER_GROUP_ID

alpine.kafka.processor.epss.mirror.max.batch.size

Required true
Type integer
Default 500
ENV ALPINE_KAFKA_PROCESSOR_EPSS_MIRROR_MAX_BATCH_SIZE

alpine.kafka.processor.epss.mirror.max.concurrency

Required true
Type integer
Default -1
ENV ALPINE_KAFKA_PROCESSOR_EPSS_MIRROR_MAX_CONCURRENCY

alpine.kafka.processor.epss.mirror.processing.order

Required true
Type enum
Valid Values [key, partition, unordered]
Default key
ENV ALPINE_KAFKA_PROCESSOR_EPSS_MIRROR_PROCESSING_ORDER

alpine.kafka.processor.epss.mirror.retry.initial.delay.ms

Required true
Type integer
Default 3000
ENV ALPINE_KAFKA_PROCESSOR_EPSS_MIRROR_RETRY_INITIAL_DELAY_MS

alpine.kafka.processor.epss.mirror.retry.max.delay.ms

Required true
Type integer
Default 180000
ENV ALPINE_KAFKA_PROCESSOR_EPSS_MIRROR_RETRY_MAX_DELAY_MS

alpine.kafka.processor.epss.mirror.retry.multiplier

Required true
Type integer
Default 2
ENV ALPINE_KAFKA_PROCESSOR_EPSS_MIRROR_RETRY_MULTIPLIER

alpine.kafka.processor.epss.mirror.retry.randomization.factor

Required true
Type double
Default 0.3
ENV ALPINE_KAFKA_PROCESSOR_EPSS_MIRROR_RETRY_RANDOMIZATION_FACTOR

alpine.kafka.processor.repo.meta.analysis.result.consumer.auto.offset.reset

Required true
Type enum
Valid Values [earliest, latest, none]
Default earliest
ENV ALPINE_KAFKA_PROCESSOR_REPO_META_ANALYSIS_RESULT_CONSUMER_AUTO_OFFSET_RESET

alpine.kafka.processor.repo.meta.analysis.result.consumer.group.id

Required true
Type string
Default dtrack-apiserver-processor
ENV ALPINE_KAFKA_PROCESSOR_REPO_META_ANALYSIS_RESULT_CONSUMER_GROUP_ID

alpine.kafka.processor.repo.meta.analysis.result.max.concurrency

Required true
Type integer
Default -1
ENV ALPINE_KAFKA_PROCESSOR_REPO_META_ANALYSIS_RESULT_MAX_CONCURRENCY

alpine.kafka.processor.repo.meta.analysis.result.processing.order

Required true
Type enum
Valid Values [key, partition, unordered]
Default key
ENV ALPINE_KAFKA_PROCESSOR_REPO_META_ANALYSIS_RESULT_PROCESSING_ORDER

alpine.kafka.processor.repo.meta.analysis.result.retry.initial.delay.ms

Required true
Type integer
Default 1000
ENV ALPINE_KAFKA_PROCESSOR_REPO_META_ANALYSIS_RESULT_RETRY_INITIAL_DELAY_MS

alpine.kafka.processor.repo.meta.analysis.result.retry.max.delay.ms

Required true
Type integer
Default 180000
ENV ALPINE_KAFKA_PROCESSOR_REPO_META_ANALYSIS_RESULT_RETRY_MAX_DELAY_MS

alpine.kafka.processor.repo.meta.analysis.result.retry.multiplier

Required true
Type integer
Default 2
ENV ALPINE_KAFKA_PROCESSOR_REPO_META_ANALYSIS_RESULT_RETRY_MULTIPLIER

alpine.kafka.processor.repo.meta.analysis.result.retry.randomization.factor

Required true
Type double
Default 0.3
ENV ALPINE_KAFKA_PROCESSOR_REPO_META_ANALYSIS_RESULT_RETRY_RANDOMIZATION_FACTOR

alpine.kafka.processor.vuln.mirror.consumer.auto.offset.reset

Required true
Type enum
Valid Values [earliest, latest, none]
Default earliest
ENV ALPINE_KAFKA_PROCESSOR_VULN_MIRROR_CONSUMER_AUTO_OFFSET_RESET

alpine.kafka.processor.vuln.mirror.consumer.group.id

Required true
Type string
Default dtrack-apiserver-processor
ENV ALPINE_KAFKA_PROCESSOR_VULN_MIRROR_CONSUMER_GROUP_ID

alpine.kafka.processor.vuln.mirror.max.concurrency

Required true
Type integer
Default -1
ENV ALPINE_KAFKA_PROCESSOR_VULN_MIRROR_MAX_CONCURRENCY

alpine.kafka.processor.vuln.mirror.processing.order

Required true
Type enum
Valid Values [key, partition, unordered]
Default partition
ENV ALPINE_KAFKA_PROCESSOR_VULN_MIRROR_PROCESSING_ORDER

alpine.kafka.processor.vuln.mirror.retry.initial.delay.ms

Required true
Type integer
Default 3000
ENV ALPINE_KAFKA_PROCESSOR_VULN_MIRROR_RETRY_INITIAL_DELAY_MS

alpine.kafka.processor.vuln.mirror.retry.max.delay.ms

Required true
Type integer
Default 180000
ENV ALPINE_KAFKA_PROCESSOR_VULN_MIRROR_RETRY_MAX_DELAY_MS

alpine.kafka.processor.vuln.mirror.retry.multiplier

Required true
Type integer
Default 2
ENV ALPINE_KAFKA_PROCESSOR_VULN_MIRROR_RETRY_MULTIPLIER

alpine.kafka.processor.vuln.mirror.retry.randomization.factor

Required true
Type double
Default 0.3
ENV ALPINE_KAFKA_PROCESSOR_VULN_MIRROR_RETRY_RANDOMIZATION_FACTOR

alpine.kafka.processor.vuln.scan.result.consumer.auto.offset.reset

Required true
Type enum
Valid Values [earliest, latest, none]
Default earliest
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_CONSUMER_AUTO_OFFSET_RESET

alpine.kafka.processor.vuln.scan.result.consumer.group.id

Required true
Type string
Default dtrack-apiserver-processor
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_CONSUMER_GROUP_ID

alpine.kafka.processor.vuln.scan.result.max.concurrency

Required true
Type integer
Default -1
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_MAX_CONCURRENCY

alpine.kafka.processor.vuln.scan.result.processed.consumer.auto.offset.reset

Required true
Type enum
Valid Values [earliest, latest, none]
Default earliest
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_PROCESSED_CONSUMER_AUTO_OFFSET_RESET

alpine.kafka.processor.vuln.scan.result.processed.consumer.fetch.min.bytes

Required true
Type integer
Default 524288
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_PROCESSED_CONSUMER_FETCH_MIN_BYTES

alpine.kafka.processor.vuln.scan.result.processed.consumer.group.id

Required true
Type string
Default dtrack-apiserver-processor
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_PROCESSED_CONSUMER_GROUP_ID

alpine.kafka.processor.vuln.scan.result.processed.consumer.max.poll.records

Required true
Type integer
Default 10000
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_PROCESSED_CONSUMER_MAX_POLL_RECORDS

alpine.kafka.processor.vuln.scan.result.processed.max.batch.size

Required true
Type integer
Default 1000
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_PROCESSED_MAX_BATCH_SIZE

alpine.kafka.processor.vuln.scan.result.processed.max.concurrency

Required true
Type integer
Default 1
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_PROCESSED_MAX_CONCURRENCY

alpine.kafka.processor.vuln.scan.result.processed.processing.order

Required true
Type enum
Valid Values [key, partition, unordered]
Default unordered
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_PROCESSED_PROCESSING_ORDER

alpine.kafka.processor.vuln.scan.result.processed.retry.initial.delay.ms

Required true
Type integer
Default 3000
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_PROCESSED_RETRY_INITIAL_DELAY_MS

alpine.kafka.processor.vuln.scan.result.processed.retry.max.delay.ms

Required true
Type integer
Default 180000
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_PROCESSED_RETRY_MAX_DELAY_MS

alpine.kafka.processor.vuln.scan.result.processed.retry.multiplier

Required true
Type integer
Default 2
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_PROCESSED_RETRY_MULTIPLIER

alpine.kafka.processor.vuln.scan.result.processed.retry.randomization.factor

Required true
Type double
Default 0.3
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_PROCESSED_RETRY_RANDOMIZATION_FACTOR

alpine.kafka.processor.vuln.scan.result.processing.order

Required true
Type enum
Valid Values [key, partition, unordered]
Default key
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_PROCESSING_ORDER

alpine.kafka.processor.vuln.scan.result.retry.initial.delay.ms

Required true
Type integer
Default 1000
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_RETRY_INITIAL_DELAY_MS

alpine.kafka.processor.vuln.scan.result.retry.max.delay.ms

Required true
Type integer
Default 180000
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_RETRY_MAX_DELAY_MS

alpine.kafka.processor.vuln.scan.result.retry.multiplier

Required true
Type integer
Default 2
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_RETRY_MULTIPLIER

alpine.kafka.processor.vuln.scan.result.retry.randomization.factor

Required true
Type double
Default 0.3
ENV ALPINE_KAFKA_PROCESSOR_VULN_SCAN_RESULT_RETRY_RANDOMIZATION_FACTOR

kafka.auto.offset.reset

Required false
Type enum
Valid Values [earliest, latest, none]
Default earliest
ENV KAFKA_AUTO_OFFSET_RESET

kafka.bootstrap.servers

Required true
Type string
Default null
Example localhost:9092
ENV KAFKA_BOOTSTRAP_SERVERS

kafka.keystore.password

Required false
Type string
Default null
ENV KAFKA_KEYSTORE_PASSWORD

kafka.keystore.path

Required false
Type string
Default null
ENV KAFKA_KEYSTORE_PATH

kafka.mtls.enabled

Required false
Type boolean
Default false
ENV KAFKA_MTLS_ENABLED

kafka.security.protocol

Required false
Type enum
Valid Values [PLAINTEXT, SASL_SSL_PLAINTEXT, SASL_PLAINTEXT, SSL]
Default null
ENV KAFKA_SECURITY_PROTOCOL

kafka.tls.enabled

Required false
Type boolean
Default false
ENV KAFKA_TLS_ENABLED

kafka.topic.prefix

Required false
Type string
Default null
ENV KAFKA_TOPIC_PREFIX

kafka.truststore.password

Required false
Type string
Default null
ENV KAFKA_TRUSTSTORE_PASSWORD

kafka.truststore.path

Required false
Type string
Default null
ENV KAFKA_TRUSTSTORE_PATH

LDAP

alpine.ldap.attribute.mail

Specifies the LDAP attribute used to store a users email address

Required false
Type string
Default mail
ENV ALPINE_LDAP_ATTRIBUTE_MAIL

alpine.ldap.attribute.name

Specifies the Attribute that identifies a users ID.

Example (Microsoft Active Directory):

  • userPrincipalName
Example (ApacheDS, Fedora 389 Directory, NetIQ/Novell eDirectory, etc):
  • uid

Required false
Type string
Default userPrincipalName
ENV ALPINE_LDAP_ATTRIBUTE_NAME

alpine.ldap.auth.username.format

Specifies if the username entered during login needs to be formatted prior to asserting credentials against the directory. For Active Directory, the userPrincipal attribute typically ends with the domain, whereas the samAccountName attribute and other directory server implementations do not. The %s variable will be substituted with the username asserted during login.

Example (Microsoft Active Directory):

  • %s@example.com
Example (ApacheDS, Fedora 389 Directory, NetIQ/Novell eDirectory, etc):
  • %s

Required false
Type string
Default null
Example %s@example.com
ENV ALPINE_LDAP_AUTH_USERNAME_FORMAT

alpine.ldap.basedn

Specifies the base DN that all queries should search from

Required false
Type string
Default null
Example dc=example,dc=com
ENV ALPINE_LDAP_BASEDN

alpine.ldap.bind.password

If anonymous access is not permitted, specify a password for the username used to bind.

Required false
Type string
Default null
ENV ALPINE_LDAP_BIND_PASSWORD

alpine.ldap.bind.username

If anonymous access is not permitted, specify a username with limited access to the directory, just enough to perform searches. This should be the fully qualified DN of the user.

Required false
Type string
Default null
ENV ALPINE_LDAP_BIND_USERNAME

alpine.ldap.enabled

Defines if LDAP will be used for user authentication. If enabled, alpine.ldap.* properties should be set accordingly.

Required false
Type boolean
Default false
ENV ALPINE_LDAP_ENABLED

alpine.ldap.groups.filter

Specifies the LDAP search filter used to retrieve all groups from the directory.

Example (Microsoft Active Directory):

  • (&(objectClass=group)(objectCategory=Group))
Example (ApacheDS, Fedora 389 Directory, NetIQ/Novell eDirectory, etc):
  • (&(objectClass=groupOfUniqueNames))

Required false
Type string
Default (&(objectClass=group)(objectCategory=Group))
ENV ALPINE_LDAP_GROUPS_FILTER

alpine.ldap.groups.search.filter

Specifies the LDAP search filter used to search for groups by their name. The {SEARCH_TERM} variable will be substituted at runtime.

Example (Microsoft Active Directory):

  • (&(objectClass=group)(objectCategory=Group)(cn={SEARCH_TERM}))
Example (ApacheDS, Fedora 389 Directory, NetIQ/Novell eDirectory, etc):
  • (&(objectClass=groupOfUniqueNames)(cn={SEARCH_TERM}))

Required false
Type string
Default (&(objectClass=group)(objectCategory=Group)(cn=*{SEARCH_TERM}*))
ENV ALPINE_LDAP_GROUPS_SEARCH_FILTER

alpine.ldap.security.auth

Specifies the LDAP security authentication level to use. Its value is one of the following strings: "none", "simple", "strong". If this property is empty or unspecified, the behaviour is determined by the service provider.

Required false
Type enum
Valid Values [none, simple, strong]
Default simple
ENV ALPINE_LDAP_SECURITY_AUTH

alpine.ldap.server.url

Specifies the LDAP server URL.

Examples (Microsoft Active Directory):

  • ldap://ldap.example.com:3268
  • ldaps://ldap.example.com:3269
Examples (ApacheDS, Fedora 389 Directory, NetIQ/Novell eDirectory, etc):
  • ldap://ldap.example.com:389
  • ldaps://ldap.example.com:636

Required false
Type string
Default null
ENV ALPINE_LDAP_SERVER_URL

alpine.ldap.team.synchronization

This option will ensure that team memberships for LDAP users are dynamic and synchronized with membership of LDAP groups. When a team is mapped to an LDAP group, all local LDAP users will automatically be assigned to the team if they are a member of the group the team is mapped to. If the user is later removed from the LDAP group, they will also be removed from the team. This option provides the ability to dynamically control user permissions via an external directory.

Required false
Type boolean
Default false
ENV ALPINE_LDAP_TEAM_SYNCHRONIZATION

alpine.ldap.user.groups.filter

Specifies the LDAP search filter to use to query a user and retrieve a list of groups the user is a member of. The {USER_DN} variable will be substituted with the actual value of the users DN at runtime.

Example (Microsoft Active Directory):

  • (&(objectClass=group)(objectCategory=Group)(member={USER_DN}))
Example (Microsoft Active Directory - with nested group support):
  • (member:1.2.840.113556.1.4.1941:={USER_DN})
Example (ApacheDS, Fedora 389 Directory, NetIQ/Novell eDirectory, etc):
  • (&(objectClass=groupOfUniqueNames)(uniqueMember={USER_DN}))

Required false
Type string
Default (member:1.2.840.113556.1.4.1941:={USER_DN})
ENV ALPINE_LDAP_USER_GROUPS_FILTER

alpine.ldap.user.provisioning

Specifies if mapped LDAP accounts are automatically created upon successful authentication. When a user logs in with valid credentials but an account has not been previously provisioned, an authentication failure will be returned. This allows admins to control specifically which ldap users can access the system and which users cannot. When this value is set to true, a local ldap user will be created and mapped to the ldap account automatically. This automatic provisioning only affects authentication, not authorization.

Required false
Type boolean
Default false
ENV ALPINE_LDAP_USER_PROVISIONING

alpine.ldap.users.search.filter

Specifies the LDAP search filter used to search for users by their name. The {SEARCH_TERM} variable will be substituted at runtime.

Example (Microsoft Active Directory):

  • (&(objectClass=group)(objectCategory=Group)(cn={SEARCH_TERM}))
Example (ApacheDS, Fedora 389 Directory, NetIQ/Novell eDirectory, etc):
  • (&(objectClass=inetOrgPerson)(cn={SEARCH_TERM}))

Required false
Type string
Default (&(objectClass=user)(objectCategory=Person)(cn=*{SEARCH_TERM}*))
ENV ALPINE_LDAP_USERS_SEARCH_FILTER

Observability

alpine.metrics.auth.password

Defines the password required to access metrics. Has no effect when alpine.metrics.auth.username is not set.

Required false
Type string
Default null
ENV ALPINE_METRICS_AUTH_PASSWORD

alpine.metrics.auth.username

Defines the username required to access metrics. Has no effect when alpine.metrics.auth.password is not set.

Required false
Type string
Default null
ENV ALPINE_METRICS_AUTH_USERNAME

alpine.metrics.enabled

Defines whether Prometheus metrics will be exposed. If enabled, metrics will be available via the /metrics endpoint.

Required false
Type boolean
Default false
ENV ALPINE_METRICS_ENABLED

OpenID Connect

alpine.oidc.client.id

Defines the client ID to be used for OpenID Connect. The client ID should be the same as the one configured for the frontend, and will only be used to validate ID tokens.

Required false
Type string
Default null
ENV ALPINE_OIDC_CLIENT_ID

alpine.oidc.enabled

Defines if OpenID Connect will be used for user authentication. If enabled, alpine.oidc.* properties should be set accordingly.

Required false
Type boolean
Default false
ENV ALPINE_OIDC_ENABLED

alpine.oidc.issuer

Defines the issuer URL to be used for OpenID Connect. This issuer MUST support provider configuration via the /.well-known/openid-configuration endpoint. See also:

  • https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata
  • https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig

Required false
Type string
Default null
ENV ALPINE_OIDC_ISSUER

alpine.oidc.team.synchronization

This option will ensure that team memberships for OpenID Connect users are dynamic and synchronized with membership of OpenID Connect groups or assigned roles. When a team is mapped to an OpenID Connect group, all local OpenID Connect users will automatically be assigned to the team if they are a member of the group the team is mapped to. If the user is later removed from the OpenID Connect group, they will also be removed from the team. This option provides the ability to dynamically control user permissions via the identity provider. Note that team synchronization is only performed during user provisioning and after successful authentication.

Required false
Type boolean
Default false
ENV ALPINE_OIDC_TEAM_SYNCHRONIZATION

alpine.oidc.teams.claim

Defines the name of the claim that contains group memberships or role assignments in the provider's userinfo endpoint. The claim must be an array of strings. Most public identity providers do not support group or role management. When using a customizable / on-demand hosted identity provider, name, content, and inclusion in the userinfo endpoint will most likely need to be configured.

Required false
Type string
Default groups
ENV ALPINE_OIDC_TEAMS_CLAIM

alpine.oidc.user.provisioning

Specifies if mapped OpenID Connect accounts are automatically created upon successful authentication. When a user logs in with a valid access token but an account has not been previously provisioned, an authentication failure will be returned. This allows admins to control specifically which OpenID Connect users can access the system and which users cannot. When this value is set to true, a local OpenID Connect user will be created and mapped to the OpenID Connect account automatically. This automatic provisioning only affects authentication, not authorization.

Required false
Type boolean
Default false
ENV ALPINE_OIDC_USER_PROVISIONING

alpine.oidc.username.claim

Defines the name of the claim that contains the username in the provider's userinfo endpoint. Common claims are name, username, preferred_username or nickname. See also:

  • https://openid.net/specs/openid-connect-core-1_0.html#UserInfoResponse

Required false
Type string
Default name
ENV ALPINE_OIDC_USERNAME_CLAIM

Task Execution

alpine.worker.thread.multiplier

Defines a multiplier that is used to calculate the number of threads used by the event subsystem. This property is only used when alpine.worker.threads is set to 0. A machine with 4 cores and a multiplier of 4, will use (at most) 16 worker threads.

Required true
Type integer
Default 4
ENV ALPINE_WORKER_THREAD_MULTIPLIER

alpine.worker.threads

Defines the number of worker threads that the event subsystem will consume. Events occur asynchronously and are processed by the Event subsystem. This value should be large enough to handle most production situations without introducing much delay, yet small enough not to pose additional load on an already resource-constrained server. A value of 0 will instruct Alpine to allocate 1 thread per CPU core. This can further be tweaked using the alpine.worker.thread.multiplier property.

Required true
Type integer
Default 0
ENV ALPINE_WORKER_THREADS

Task Scheduling

integrityMetaInitializer.lockAtLeastForInMillis

Required true
Type integer
Default 90000
ENV INTEGRITYMETAINITIALIZER_LOCKATLEASTFORINMILLIS

integrityMetaInitializer.lockAtMostForInMillis

Required true
Type integer
Default 900000
ENV INTEGRITYMETAINITIALIZER_LOCKATMOSTFORINMILLIS

task.componentIdentification.lockAtLeastForInMillis

Required true
Type integer
Default 90000
ENV TASK_COMPONENTIDENTIFICATION_LOCKATLEASTFORINMILLIS

task.componentIdentification.lockAtMostForInMillis

Required true
Type integer
Default 900000
ENV TASK_COMPONENTIDENTIFICATION_LOCKATMOSTFORINMILLIS

task.cron.componentIdentification

Schedule task every 6 hrs at 25th min

Required true
Type cron
Default 25 */6 * * *
ENV TASK_CRON_COMPONENTIDENTIFICATION

task.cron.defectdojo.sync

Schedule task every 24 hrs at 02:00 UTC

Required true
Type cron
Default 0 2 * * *
ENV TASK_CRON_DEFECTDOJO_SYNC

task.cron.fortify.ssc.sync

Schedule task every 24 hrs at 02:00 UTC

Required true
Type cron
Default 0 2 * * *
ENV TASK_CRON_FORTIFY_SSC_SYNC

task.cron.integrityInitializer

Schedule task at 0 min past every 12th hr

Required true
Type cron
Default 0 */12 * * *
ENV TASK_CRON_INTEGRITYINITIALIZER

task.cron.kenna.sync

Schedule task every 24 hrs at 02:00 UTC

Required true
Type cron
Default 0 2 * * *
ENV TASK_CRON_KENNA_SYNC

task.cron.ldapSync

Schedule task every 6 hrs at 0th min

Required true
Type cron
Default 0 */6 * * *
ENV TASK_CRON_LDAPSYNC

task.cron.metrics.portfolio

Schedule task for 10th minute of every hour

Required true
Type cron
Default 10 * * * *
ENV TASK_CRON_METRICS_PORTFOLIO

task.cron.metrics.vulnerability

Schedule task for 40th minute of every hour

Required true
Type cron
Default 40 * * * *
ENV TASK_CRON_METRICS_VULNERABILITY

task.cron.mirror.github

Schedule task every 24 hrs at 02:00 UTC

Required true
Type cron
Default 0 2 * * *
ENV TASK_CRON_MIRROR_GITHUB

task.cron.mirror.nist

Schedule task every 24 hrs at 04:00 UTC

Required true
Type cron
Default 0 4 * * *
ENV TASK_CRON_MIRROR_NIST

task.cron.mirror.osv

Schedule task every 24 hrs at 03:00 UTC

Required true
Type cron
Default 0 3 * * *
ENV TASK_CRON_MIRROR_OSV

task.cron.repoMetaAnalysis

Schedule task every 24 hrs at 01:00 UTC

Required true
Type cron
Default 0 1 * * *
ENV TASK_CRON_REPOMETAANALYSIS

task.cron.vulnAnalysis

Schedule task every 24hrs at 06:00 UTC

Required true
Type cron
Default 0 6 * * *
ENV TASK_CRON_VULNANALYSIS

task.cron.vulnScanCleanUp

Schedule task at 8:05 UTC on Wednesday every week

Required true
Type cron
Default 5 8 * * 4
ENV TASK_CRON_VULNSCANCLEANUP

task.cron.vulnerability.policy.bundle.fetch

Schedule task every 5 minutes

Required true
Type cron
Default */5 * * * *
ENV TASK_CRON_VULNERABILITY_POLICY_BUNDLE_FETCH

task.cron.workflow.state.cleanup

Schedule task every 15 minutes

Required true
Type cron
Default */15 * * * *
ENV TASK_CRON_WORKFLOW_STATE_CLEANUP

task.ldapSync.lockAtLeastForInMillis

Required true
Type integer
Default 90000
ENV TASK_LDAPSYNC_LOCKATLEASTFORINMILLIS

task.ldapSync.lockAtMostForInMillis

Required true
Type integer
Default 900000
ENV TASK_LDAPSYNC_LOCKATMOSTFORINMILLIS

task.metrics.portfolio.lockAtLeastForInMillis

Specifies minimum amount of time for which the lock should be kept. Its main purpose is to prevent execution from multiple nodes in case of really short tasks and clock difference between the nodes.

Required true
Type integer
Default 90000
ENV TASK_METRICS_PORTFOLIO_LOCKATLEASTFORINMILLIS

task.metrics.portfolio.lockAtMostForInMillis

Specifies how long the lock should be kept in case the executing node dies. This is just a fallback, under normal circumstances the lock is released as soon the tasks finishes. Set lockAtMostFor to a value which is much longer than normal execution time. Default value is 15min Lock will be extended dynamically till task execution is finished

Required true
Type integer
Default 900000
ENV TASK_METRICS_PORTFOLIO_LOCKATMOSTFORINMILLIS

task.metrics.vulnerability.lockAtLeastForInMillis

Required true
Type integer
Default 90000
ENV TASK_METRICS_VULNERABILITY_LOCKATLEASTFORINMILLIS

task.metrics.vulnerability.lockAtMostForInMillis

Required true
Type integer
Default 900000
ENV TASK_METRICS_VULNERABILITY_LOCKATMOSTFORINMILLIS

task.mirror.epss.lockAtLeastForInMillis

Required true
Type integer
Default 90000
ENV TASK_MIRROR_EPSS_LOCKATLEASTFORINMILLIS

task.mirror.epss.lockAtMostForInMillis

Required true
Type integer
Default 900000
ENV TASK_MIRROR_EPSS_LOCKATMOSTFORINMILLIS

task.portfolio.repoMetaAnalysis.lockAtLeastForInMillis

Required true
Type integer
Default 90000
ENV TASK_PORTFOLIO_REPOMETAANALYSIS_LOCKATLEASTFORINMILLIS

task.portfolio.repoMetaAnalysis.lockAtMostForInMillis

Required true
Type integer
Default 900000
ENV TASK_PORTFOLIO_REPOMETAANALYSIS_LOCKATMOSTFORINMILLIS

task.portfolio.vulnAnalysis.lockAtLeastForInMillis

Required true
Type integer
Default 90000
ENV TASK_PORTFOLIO_VULNANALYSIS_LOCKATLEASTFORINMILLIS

task.portfolio.vulnAnalysis.lockAtMostForInMillis

Required true
Type integer
Default 900000
ENV TASK_PORTFOLIO_VULNANALYSIS_LOCKATMOSTFORINMILLIS

task.scheduler.initial.delay

Scheduling tasks after 3 minutes (3601000) of starting application

Required true
Type integer
Default 180000
ENV TASK_SCHEDULER_INITIAL_DELAY

task.scheduler.polling.interval

Cron expressions for tasks have the precision of minutes so polling every minute

Required true
Type integer
Default 60000
ENV TASK_SCHEDULER_POLLING_INTERVAL

task.workflow.state.cleanup.lockAtLeastForInMillis

Required true
Type integer
Default 900000
ENV TASK_WORKFLOW_STATE_CLEANUP_LOCKATLEASTFORINMILLIS

task.workflow.state.cleanup.lockAtMostForInMillis

Required true
Type integer
Default 900000
ENV TASK_WORKFLOW_STATE_CLEANUP_LOCKATMOSTFORINMILLIS