<commit_before>[[configuration-properties]]
=== Configuration properties

Ontrack uses the Spring Boot mechanism for its configuration.
See the <<configuration,documentation>> on how to set those properties in your Ontrack installation.

All http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#common-application-properties[Spring Boot properties]
are available for configuration.

Additionally, Ontrack defines the following ones.

TIP: The names of the configuration properties are given for a `.properties`
file format but you can configure them in YAML of course.
They can also be provided as system properties or environment variables.
See the
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-properties-and-configuration[Spring Boot documentation]
for more details.

WARNING: This sample file is meant as a guide only.
Do *not* copy/paste the entire content into your application; rather pick only the properties that you need.

TIP: When applicable, the default value is mentioned.

[source,properties]
----
# ======================================================
# Ontrack properties
# ======================================================

# Root URL for this Ontrack installation, used for notifications
ontrack.config.url = http://localhost:8080

# Maximum number of days to keep the log entries
ontrack.config.application-log-retention-days = 7

# Maximum number of errors to display as notification in the GUI
ontrack.config.application-log-info-max = 10

# Directory which contains all the working files of Ontrack
# It is usually set by the installation
ontrack.config.application-working-dir = work/files

# Maximum number of builds which can be returned by a build filter
# Any number above is truncated down to this value
ontrack.config.build-filter-count-max = 200

# Testing the configurations of external configurations
# Used only for internal testing, to disable the checks
# when creating external configurations
ontrack.config.configuration-test = true

# Activation of the provided labels collection job
ontrack.config.job-label-provider-enabled = false

# Number of threads to use to run the background jobs
ontrack.config.jobs.pool-size = 10

# Interval (in minutes) between each refresh of the job list
ontrack.config.jobs.orchestration = 2

# Set to true to not start any job at application startup
# The administrator can restore the scheduling jobs manually
ontrack.config.jobs.paused-at-startup = false

# Enabling the scattering of jobs
# When several jobs have the same schedule, this can create a peak of activity,
# potentially harmful for the performances of the application
# Enabling scattering allows jobs to be scheduled with an additional delay, computed
# as a fraction of the period.
ontrack.config.jobs.scattering = false

# Scattering ratio. Maximum fraction of the period to take into account for the
# scattering. For example, setting 0.5 would not add a dealy greater than half
# the period of the job. Setting 0 would actually disable the scattering altogether.
ontrack.config.jobs.scattering-ratio = 1.0

# Global timeout for all jobs
# Any job running longer than this time will be forcibly stopped
# It defaults to 4 hours
ontrack.config.jobs.timeout = 4h

# Amount of time to wait between two controls of the job timeouts
ontrack.config.jobs.timeout-controller-interval = 15m

# Confidential store for the encryption keys
ontrack.config.key-store = file

# Cache configuration
# Caffeine spec strings per cache type
# See http://static.javadoc.io/com.github.ben-manes.caffeine/caffeine/2.6.0/com/github/benmanes/caffeine/cache/CaffeineSpec.html
# For example, for the `properties` cache:
ontrack.config.cache.specs.properties = maximumSize=1000,expireAfterWrite=1d,recordStats

#################################
# CasC properties
#################################

# Is the configuration as code enabled?
ontrack.config.casc.enabled = true

# List of locations for the CasC definitions
# ontrack.config.casc.locations.0 = ...
# ontrack.config.casc.locations.1 = ...

# Enables the creation of a job to reload the CasC.
ontrack.config.casc.reloading.enabled = false

# Cron schedule for the reloading. Leave blank or empty to disable the automated reloading.
ontrack.config.casc.reloading.cron = ""

#################################
# Search configuration properties
#################################

# By default, indexation is ElasticSearch is done after some
# time after the index has been requested. The flag below
# forces the index to be refreshed immediately.
# This SHOULD NOT be used in production but is very useful
# when testing Ontrack search capabilities
ontrack.config.search.index.immediate = false

# When performing full indexation, the indexation is performed
# by batch. The parameter below allows to set the size
# of this batch processing.
# Note: this is a default batch size. Custom indexers can
# override it.
ontrack.config.search.index.batch = 1000

# When performing full indexation, the indexation is performed
# by batch. The parameter below allows to generate additional
# logging when indexing actions are actually taken.
ontrack.config.search.index.logging = false

# When performing full indexation, the indexation is performed
# by batch. The parameter below allows to generate additional
# logging for all actions on Git issues
# Note: if set to `true` this generates an awful lot if information
# at DEBUG level.
ontrack.config.search.index.tracing = false
----

[[configuration-properties-notifications]]
==== Notifications Configuration properties

[source,properties]
----
# Are the notifications enabled?
ontrack.config.extension.notifications.enabled = true

# Dispatching configuration

# Dispatching queuing configuration

# Asynchronous dispatching
ontrack.config.extension.notifications.dispatching.queue.async = true

# Processing configuration

# Processing queuing configuration

# Asynchronous processing
ontrack.config.extension.notifications.processing.queue.async = true
----

[[configuration-properties-git]]
==== Git Configuration properties

[source,properties]
----
# Timeout in seconds for remote operations to start (like fetch & clone)
# Leave 0 to use the default system value. Set to 60 seconds by default.
# This timeout is used for the connection part, not the
# total duration of the operation.
# For the completion timeout, see operation-timeout below
ontrack.config.extension.git.remote.timeout = 60s

# Timeout (by default in minutes) for a given remote
# operation to complete (like fetch & clone)
# Set to 10 minutes by default.
ontrack.config.extension.git.remote.operation-timeout = 10m

# Number of retries to run when there is a timeout.
# Set to 0 for no retry.
ontrack.config.extension.git.remote.retries = 3

# Interval between retries (by default in seconds
# and set to 30 seconds by default).
ontrack.config.extension.git.remote.interval = 30s

# Enabling pull requests
ontrack.config.extension.git.pull-requests.enabled = true
<commit_msg>#951 [doc] Static config properties<commit_after>[[configuration-properties]]
=== Configuration properties

Ontrack uses the Spring Boot mechanism for its configuration.
See the <<configuration,documentation>> on how to set those properties in your Ontrack installation.

All http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#common-application-properties[Spring Boot properties]
are available for configuration.

Additionally, Ontrack defines the following ones.

TIP: The names of the configuration properties are given for a `.properties`
file format but you can configure them in YAML of course.
They can also be provided as system properties or environment variables.
See the
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-properties-and-configuration[Spring Boot documentation]
for more details.

WARNING: This sample file is meant as a guide only.
Do *not* copy/paste the entire content into your application; rather pick only the properties that you need.

TIP: When applicable, the default value is mentioned.

[source,properties]
----
# ======================================================
# Ontrack properties
# ======================================================

# Root URL for this Ontrack installation, used for notifications
ontrack.config.url = http://localhost:8080

# Maximum number of days to keep the log entries
ontrack.config.application-log-retention-days = 7

# Maximum number of errors to display as notification in the GUI
ontrack.config.application-log-info-max = 10

# Directory which contains all the working files of Ontrack
# It is usually set by the installation
ontrack.config.application-working-dir = work/files

# Maximum number of builds which can be returned by a build filter
# Any number above is truncated down to this value
ontrack.config.build-filter-count-max = 200

# Testing the configurations of external configurations
# Used only for internal testing, to disable the checks
# when creating external configurations
ontrack.config.configuration-test = true

# Activation of the provided labels collection job
ontrack.config.job-label-provider-enabled = false

# Number of threads to use to run the background jobs
ontrack.config.jobs.pool-size = 10

# Interval (in minutes) between each refresh of the job list
ontrack.config.jobs.orchestration = 2

# Set to true to not start any job at application startup
# The administrator can restore the scheduling jobs manually
ontrack.config.jobs.paused-at-startup = false

# Enabling the scattering of jobs
# When several jobs have the same schedule, this can create a peak of activity,
# potentially harmful for the performances of the application
# Enabling scattering allows jobs to be scheduled with an additional delay, computed
# as a fraction of the period.
ontrack.config.jobs.scattering = false

# Scattering ratio. Maximum fraction of the period to take into account for the
# scattering. For example, setting 0.5 would not add a dealy greater than half
# the period of the job. Setting 0 would actually disable the scattering altogether.
ontrack.config.jobs.scattering-ratio = 1.0

# Global timeout for all jobs
# Any job running longer than this time will be forcibly stopped
# It defaults to 4 hours
ontrack.config.jobs.timeout = 4h

# Amount of time to wait between two controls of the job timeouts
ontrack.config.jobs.timeout-controller-interval = 15m

# Confidential store for the encryption keys
ontrack.config.key-store = file

# Cache configuration
# Caffeine spec strings per cache type
# See http://static.javadoc.io/com.github.ben-manes.caffeine/caffeine/2.6.0/com/github/benmanes/caffeine/cache/CaffeineSpec.html
# For example, for the `properties` cache:
ontrack.config.cache.specs.properties = maximumSize=1000,expireAfterWrite=1d,recordStats

#################################
# CasC properties
#################################

# Is the configuration as code enabled?
ontrack.config.casc.enabled = true

# List of locations for the CasC definitions
# ontrack.config.casc.locations.0 = ...
# ontrack.config.casc.locations.1 = ...

# Enables the creation of a job to reload the CasC.
ontrack.config.casc.reloading.enabled = false

# Cron schedule for the reloading. Leave blank or empty to disable the automated reloading.
ontrack.config.casc.reloading.cron = ""

#################################
# Search configuration properties
#################################

# By default, indexation is ElasticSearch is done after some
# time after the index has been requested. The flag below
# forces the index to be refreshed immediately.
# This SHOULD NOT be used in production but is very useful
# when testing Ontrack search capabilities
ontrack.config.search.index.immediate = false

# When performing full indexation, the indexation is performed
# by batch. The parameter below allows to set the size
# of this batch processing.
# Note: this is a default batch size. Custom indexers can
# override it.
ontrack.config.search.index.batch = 1000

# When performing full indexation, the indexation is performed
# by batch. The parameter below allows to generate additional
# logging when indexing actions are actually taken.
ontrack.config.search.index.logging = false

# When performing full indexation, the indexation is performed
# by batch. The parameter below allows to generate additional
# logging for all actions on Git issues
# Note: if set to `true` this generates an awful lot if information
# at DEBUG level.
ontrack.config.search.index.tracing = false
----

[[configuration-properties-notifications]]
==== Notifications Configuration properties

[source,properties]
----
# Are the notifications enabled?
ontrack.config.extension.notifications.enabled = true

# Dispatching configuration

# Dispatching queuing configuration

# Asynchronous dispatching
ontrack.config.extension.notifications.dispatching.queue.async = true

# Processing configuration

# Processing queuing configuration

# Asynchronous processing
ontrack.config.extension.notifications.processing.queue.async = true

# Maximum parallel processing of queues
ontrack.config.extension.notifications.processing.queue.concurrency = 10

# Mail configuration
# "Reply to" address to use
ontrack.config.extension.notifications.mail.from = no-reply@localhost
----

[[configuration-properties-git]]
==== Git Configuration properties

[source,properties]
----
# Timeout in seconds for remote operations to start (like fetch & clone)
# Leave 0 to use the default system value. Set to 60 seconds by default.
# This timeout is used for the connection part, not the
# total duration of the operation.
# For the completion timeout, see operation-timeout below
ontrack.config.extension.git.remote.timeout = 60s

# Timeout (by default in minutes) for a given remote
# operation to complete (like fetch & clone)
# Set to 10 minutes by default.
ontrack.config.extension.git.remote.operation-timeout = 10m

# Number of retries to run when there is a timeout.
# Set to 0 for no retry.
ontrack.config.extension.git.remote.retries = 3

# Interval between retries (by default in seconds
# and set to 30 seconds by default).
ontrack.config.extension.git.remote.interval = 30s

# Enabling pull requests
ontrack.config.extension.git.pull-requests.enabled = true

{'fraction_non_alphanumeric': 0.10188811188811189, 'fraction_numerical': 0.007482517482517483, 'mean_word_length': 4.841911764705882, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4151965', 'n_tokens_mistral': 3750, 'n_tokens_neox': 3569, 'n_words': 1544}