List of properties common to all editions

This page lists the configurable system properties that are common to all SonarQube editions.

SonarQube utilizes system properties during startup, which are not stored in the database. This page lists the configurable system properties common to all SonarQube Server editions (if not otherwise indicated). Properties specific to the Data Center Edition are listed in List of DCE-specific properties.

General

Properties
System property (sonar property and ENVIRONMENT_VARIABLE)
Description

sonar.multi-quality-mode.enabled

SONAR_MULTI_QUALITY_MODE_ENABLED

Enables the Multi-Quality Rule (MQR) Mode¹⁾ in your instance.

Possible values:true or false.

sonar.path.data

SONAR_PATH_DATA

Path to the directory used by SonarQube to store persistent data file. The path can be absolute or relative to the SonarQube home directory²⁾.

sonar.path.temp

SONAR_PATH_TEMP

Path to the directory used by SonarQube to store temporary files. The path can be absolute or relative to the SonarQube home directory²⁾.

sonar.notifications.delay

SONAR_NOTIFICATIONS_DELAY

Delay in seconds between processing of notification queue.

Default value:60

sonar.telemetry.enable

SONAR_TELEMETRY_ENABLE

Enables Telemetry³⁾. By sharing anonymous SonarQube statistics, you help us understand how SonarQube is used so we can improve the product to work even better for you. We don’t collect source code or IP addresses. And we don’t share the data with anyone else.

Default value:true

1) See MQR mode. 2) The SonarQube home directory is: the location where the SonarQbue distribution has been unzipped (for a ZIP installation); the installation directory of SonarQube within your container (for a Docker installation). 3) See Telemetry. 4) See Sensitive settings.

Database

General
System property (sonar property and ENVIRONMENT_VARIABLE)
Description

sonar.jdbc.username

SONAR_JDBC_USERNAME

JDBC user name.

sonar.jdbc.password

SONAR_JDBC_PASSWORD

JDBC user password.

sonar.jdbc.url

SONAR_JDBC_URL

Database connection string.

Oracle:

• Default value: jdbc:oracle:thin:@localhost:1521/XE

PostgreSQL:

• Default value: jdbc:postgresql://localhost/sonarqube

• By default the schema named public is used. It can be overridden with the parameter currentSchema: jdbc:postgresql://localhost/sonarqube?currentSchema=my_schema

Microsoft SQL Server:

• Default value: jdbc:sqlserver://localhost;databaseName=sonar;integratedSecurity=true

• If you’re using the Integrated Security, don’t use the sonar.jdbc.username and sonar.jdbc.password properties.

• If you want to use SQL Auth while connecting to MS SQL Server, use the value jdbc:sqlserver://localhost;databaseName=sonar and set the SONAR_JDBC_USERNAME and SONAR_JDBC_PASSWORD appropriately.

sonar.embeddeddatabase.port

SONAR_EMBEDDEDDATABASE_PORT

H2 embedded database server listening port.

Default value: 9092

Connection pool
System property (sonar property and ENVIRONMENT_VARIABLE)
Description

sonar.jdbc.maxActive

SONAR_JDBC_MAXACTIVE

The maximum number of active connections that can be allocated at the same time, or negative for no limit. The recommended value is 1.2 * max sizes of HTTP pools. For example, if HTTP ports are enabled with default sizes (50, see property sonar.web.http.maxThreads) then sonar.jdbc.maxActive should be 1.2 * 50 = 60.

Default value: 60

sonar.jdbc.maxIdle

SONAR_JDBC_MAXIDLE

The maximum number of connections that can remain idle in the pool, without extra ones being released, or negative for no limit.

Default value: 5

sonar.jdbc.minIdle

SONAR_JDBC_MINIDLE

The minimum number of connections that can remain idle in the pool, without extra ones being created, or zero to create none.

Default value: 2

sonar.jdbc.maxWait

SONAR_JDBC_MAXWAIT

The maximum number of milliseconds that the pool will wait (when there are no available connections) for a connection to be returned before throwing an exception, or <= 0 to wait indefinitely.

Default value: 5000

Web server

JVM options
System property (sonar property and ENVIRONMENT_VARIABLE)
Description

sonar.web.javaOpts

SONAR_WEB_JAVAOPTS

Is used to customize JVM options for the Web server process by overriding all the existing options.

sonar.web.javaAdditionalOpts

SONAR_WEB_JAVAADDITIONALOPTS

Is used to customize JVM options for the Web server process by adding them to the existing options.

Note: If this variable is used with SONAR_WEB_JAVAOPTS, its content is appended to SONAR_WEB_JAVAOPTS.

Web server connection
System property (sonar property and ENVIRONMENT_VARIABLE)
Description

sonar.web.host

SONAR_WEB_HOST

For servers with more than one IP address, this property specifies which address will be used for listening on the specified ports.

Default value: 0.0.0.0 (ports will be used on all IP addresses associated with the server)

sonar.web.port

SONAR_WEB_PORT

TCP port for incoming HTTP connections.

Default value: 9000

sonar.web.context

SONAR_WEB_CONTEXT

Web context specifying the path at which to serve SonarQube. For example, with sonar.web.port=9000 and sonar.web.context=/sonarqube, you will access the web interface at http://localhost:9000/sonarqube.

Example: /sonarqube (must start with a forward slash)

Default value: empty (root context)

HTTP connections
System property (sonar property and ENVIRONMENT_VARIABLE)
Description

sonar.web.http.maxThreads

SONAR_WEB_HTTP_MAXTHREADS

The maximum number of connections that the server will accept and process at any given time. When this number has been reached, the server will not accept any more connections until the number of connections falls below this value. The operating system may still accept connections based on the sonar.web.connections.acceptCount property.

Default value: 50

sonar.web.http.minThreads

SONAR_WEB_HTTP_MINTHREADS

The minimum number of threads always kept running.

Default value: 5

sonar.web.http.acceptCount

SONAR_WEB_HTTP_ACCEPTCOUNT

The maximum queue length for incoming connection requests when all possible request processing threads are in use. Any requests received when the queue is full will be refused.

Default value: 25

sonar.web.http.keepAliveTimeout

SONAR_WEB_HTTP_KEEPALIVETIMEOUT

The number of milliseconds this Connector will wait for another HTTP request before closing the connection. Use a value of -1 to indicate no (i.e. infinite) timeout.

Default value: 60000 (ms)

User sessions
System property (sonar property and ENVIRONMENT_VARIABLE)
Description

sonar.auth.jwtBase64hs256secret

SONAR_AUTH_JWTBASE64HS256SECRET

By default, users are logged out and sessions closed when server is restarted. If you prefer keeping user sessions open, a secret should be defined. Value is HS256 key encoded with base64¹⁾. It must be unique for each installation of SonarQube.

sonar.web.sessionTimeoutInMinutes

SONAR_WEB_SESSIONTIMEOUTINMINUTES

Inactive session timeout (in minutes). The maximum time a user can remain idle (no activity) before the session ends. If the user does not interact with the system within this time, they are logged out.

Default value: 4320 (3 days)

Minimum value: 6

Maximum value: 129 600 (90 days)

sonar.web.activeSessionTimeoutInMinutes

This property is supported starting in SonarQube Server’s Enterprise Edition.

Active session timeout (in minutes). The maximum time a user can remain logged in, regardless of activity. After this time, the session ends automatically even if the user is actively using the system.

Default value: 129 600 (90 days)

Minimum value:15

Maximum value: 129 600 (90 days)

1) See Defining a JWT token.

Authentication to web services
System property (sonar property and ENVIRONMENT_VARIABLE)
Description

sonar.web.systemPassCode

SONAR_WEB_SYSTEMPASSCODE

A passcode can be defined to access some web services from monitoring tools without having to use the credentials of a system administrator. Check the Web API documentation to know which web services are supporting this authentication mode. The passcode should be provided in HTTP requests with the header "X-Sonar-Passcode"¹⁾. By default, feature is disabled.

1) See Authenticating to the Web API.

SSO authentication

Properties
System property (sonar property and ENVIRONMENT_VARIABLE)
Description

• sonar.web.sso.enable

• SONAR_WEB_SSO_ENABLE

Enable authentication using HTTP headers.

Default value: false

• sonar.web.sso.loginheader

• SONAR_WEB_SSO_LOGINHEADER

The name of the header to get the user login. Only alphanumeric, ‘.’ and ‘@’ characters are allowed.

Default value: X-Forwarded-Login

• sonar.web.sso.nameheader

• SONAR_WEB_SSO_NAMEHEADER

The name of the header to get the user name. Default value: X-Forwarded-Name

• sonar.web.sso.emailheader

• SONAR_WEB_SSO_EMAILHEADER

The name of the header to get the user email (optional)

Default value: X-Forwarded-Email

• sonar.web.sso.groupsheader

• SONAR_WEB_SSO_GROUPSHEADER

The name of the header to get the list of user groups, separated by comma (optional). If this property is set, the user will belong to those groups if groups exist in SonarQube. If none of the provided groups exists in SonarQube, the user will only belong to the default group. Note that the default group will always be set.

Default value: X-Forwarded-Groups

• sonar.web.sso.refreshintervalinminutes

• SONAR_WEB_SSO_REFRESHINTERVALINMINUTES

The interval used to know when to refresh name, email, and groups. During this interval, if for instance the name of the user is changed in the header, it will only be updated after X minutes.

Default value: 5

LDAP authentication

See also LDAP.

General
System property (sonar property and ENVIRONMENT_VARIABLE)
Description
Required

sonar.security.realm

SONAR_SECURITY_REALM

Enables the LDAP feature. If set to LDAP, authentication against the external sytem is performed. If the external system is not reachable or if the user is not defined in the external system, authentication will be performed against SonarQube’s internal database.

Possible value:LDAP

Yes

sonar.authenticator.downcase

SONAR_AUTHENTICATOR_DOWNCASE

Is intended to be set to true when the backend LDAP system is configured for case-insensitivity (user’s input is transformed to lowercase and this value is used as the SonarQube user name).

Default value: false

No

ldap.url

LDAP_URL

URL of the LDAP server. If you are using ldaps, you should install the server certificate into the Java truststore.

Example: ldap://localhost:10389

Yes

ldap.bindDn

LDAP_BINDDN

The username of an LDAP user to connect (or bind) with. Leave this blank for anonymous access to the LDAP directory.

Example: cn=sonar,ou=users,o=mycompany

No

ldap.bindPassword

LDAP_BINDPASSWORD

The password of the user to connect with. Leave this blank for anonymous access to the LDAP directory.

Example: secret

No

ldap.authentication

LDAP_AUTHENTICATION

Possible values: simple, CRAM-MD5, DIGEST-MD5, GSSAPI. See the tutorial on authentication mechanisms

Possible values: simple (default), CRAM-MD5, DIGEST-MD5, GSSAPI

No

ldap.realm

LDAP_REALM

No

ldap.contextFactoryClass

LDAP_CONTEXTFACTORYCLASS

Context factory class.

Default value: com.sun.jndi.ldap.LdapCtxFactory

No

ldap.StartTLS

LDAP_STARTTLS

Enables the use of StartTLS.

Default value: false

No

ldap.followReferrals

LDAP_FOLLOWREFERRALS

Follow referrals or not. See Referrals in the JNDI

Default value: true

ldap.saslQop

Quality of protection request.

Example: auth

No

ldap.saslStrength

Cryptographic protection request.

Example: medium

No

ldap.saslMaxbuf

Maximum receive buffer size.

No

User mapping
System property (sonar property and ENVIRONMENT_VARIABLE)
Description
Required

ldap.user.baseDn

LDAP_USER_BASEDN

Distinguished Name (DN) of the root node in LDAP from which to search for users.

Example for Active Directory: cn=users,dc=example,dc=org

Yes

ldap.user.request

LDAP_USER_REQUEST

LDAP user request.

Default value:(&(objectClass=inetOrgPerson)(uid={login}))

Example for Active Directory: (&(objectClass=user)(sAMAccountName={login}))

No

ldap.user.realNameAttribute

LDAP_USER_REALNAMEATTRIBUTE

Attribute in LDAP defining the user’s real name.

Default value: cn

No

ldap.user.emailAttribute

LDAP_USER_EMAILATTRIBUTE

Attribute in LDAP defining the user’s email.

Default value: mail

No

Group synchronization
System property (sonar property and ENVIRONMENT_VARIABLE)
Description
Required

ldap.group.baseDn

LDAP_GROUP_BASEDN

Distinguished Name (DN) of the root node in LDAP from which to search for groups.

Example for Active Directory: cn=groups,dc=example,dc=org

No

ldap.group.request

LDAP_GROUP_REQUEST

LDAP group request.

Default value:(&(objectClass=groupOfUniqueNames)(uniqueMember={dn}))

Example for Active Directory: (&(objectClass=group)(member={dn}))

No

ldap.group.idAttribute

LDAP_GROUP_IDATTRIBUTE

Property used to specifiy the attribute to be used for returning the list of user groups in the compatibility mode.

Default value: cn

No

Compute engine

Properties
System property (sonar property and ENVIRONMENT_VARIABLE)
Description

sonar.ce.javaOpts

SONAR_CE_JAVAOPTS

Is used to customize JVM options for the Compute Engine process by overriding all the existing options.

sonar.ce.javaAdditionalOpts

SONAR_CE_JAVAADDITIONALOPTS

Is used to customize JVM options for the Compute Engine process by adding them to the existing options.

Note: If this variable is used with SONAR_CE_JAVAOPTS, its content is appended to SONAR_CE_JAVAOPTS.

Elasticsearch

Properties
System property (sonar property and ENVIRONMENT_VARIABLE)
Description

sonar.search.javaOpts

SONAR_SEARCH_JAVAOPTS

Is used to customize JVM options for the Elasticsearch process by overriding all the existing options.

sonar.search.javaAdditionalOpts

SONAR_SEARCH_JAVAADDITIONALOPTS

Is used to customize JVM options for the Elasticsearch process by adding them to the existing options.

Note: If this variable is used with SONAR_SEARCH_JAVAOPTS, its content is appended to SONAR_SEARCH_JAVAOPTS.

sonar.search.port

SONAR_SEARCH_PORT

Elasticsearch port. Use 0 to get a free port. As a security precaution, should be blocked by a firewall and not exposed to the Internet.

Default value: 9001

sonar.search.host

SONAR_SEARCH_HOST

Elasticsearch host. The search server will bind this address and the search client will connect to it. Default is loopback address. As a security precaution, should NOT be set to a publicly available address.

Marketplace (proxy configuration)

If your SonarQube is located behind a proxy, you must configure the proxy parameters listed below to make sure SonarQube Marketplace can connect to the Update Center.

Properties
System property (sonar property and ENVIRONMENT_VARIABLE)
Description

sonar.updatecenter.activate

SONAR_UPDATECENTER_ACTIVATE

Specifies whether the SonarQube’s Marketplace automatically searches for plugin updates.

Default value:true

sonar.http.proxyhost

HTTP_PROXYHOST

HTTP proxy host.

sonar.http.proxyport

HTTP_PROXYPORT

HTTP proxy port number.

sonar.https.proxyhost

HTTPS_PROXYHOST

HTTPS proxy host.

Default value: sonar.http.proxyhost or HTTP_PROXYHOST value, respectively.

sonar.https.proxyport

HTTPS_PROXYPORT

HTTPS proxy port number.

Default value: sonar.http.proxyport or HTTP_PROXYPORT value, respectively.

http.auth.ntlm.domain

HTTP_AUTH_NTLM_DOMAIN

NT domain name if NTLM proxy is used.

socksProxyHost

SOCKSPROXYHOST

SOCKS proxy port number.

socksProxyPort

SOCKSPROXYPORT

SOCKS proxy host.

sonar.http.proxyuser

HTTP_PROXYPASSWORD

Proxy authentication (used for HTTP, HTTPS and SOCKS proxies).

sonar.http.nonproxyhosts

HTTP_NONPROXYHOSTS

List of hosts that can be accessed without going through the proxy.

The list items are separated by the ‘|’ character. The wildcard character ‘*’ can be used for pattern matching used for HTTP and HTTPS.

Note: Localhost and its literal notations (e.g. 127.0.0.1) are always excluded.

Logging

Properties

See also Server logs.

SQSCB-table-common system properties > elasticsearch
Description

sonar.log.level

SONAR_LOG_LEVEL

Global level of logs (applies to all 4 processes).

Possible values:INFO (default), DEBUG, and TRACE.

sonar.log.level.<process>

SONAR_LOG_LEVEL_<PROCESS>

where <process> can be:

• app: main process

• web: Web server process

• ce: Compute Engine process

• es: Elasticsearch process

Level of logs for each process. When specified, they overwrite the level defined at the global level.

Possible values: INFO, DEBUG, and TRACE

sonar.path.logs

SONAR_PATH_LOGS

Path to log files. Can be absolute or relative to the SonarQube home directory¹⁾.

Default value:/logs

sonar.log.rollingPolicy

SONAR_LOG_ROLLINGPOLICY

Rolling policy of log files (including the access log).

Possible values:

• time:<value>: the rolling policy is based on time. Example: by day (time:yyyy-MM-dd) or by month (time:yyyy-MM).

• size:<value>: the rolling policy is based on size. Example: size:10MB

• none: the rolling policy is disabled. Typically this would be used when logs are handled by an external system like logrotate.

Default value:time:yyyy-MM-dd

sonar.log.maxFiles

SONAR_LOG_MAXFILES

Maximum number of files to keep if a rolling policy is enabled.

The maximum value is:

• For a size rolling policy: 20.

• For a time rolling poilicy: unlimited.

Set to zero to disable old file purging.

sonar.log.jsonOutput

SONAR_LOG_JSONOUTPUT

Converts the log output to JSON.

Possible values: true or false.

sonar.web.accessLogs.enable

SONAR_WEB_ACCESSLOGS_ENABLE

Specifies whether the access log is enabled, i.e. whether HTTP requests received by the server are logged. If enabled, the list of requests is stored in the access.log file.

sonar.web.accessLogs.pattern

SONAR_WEB_ACCESSLOGS_PATTERN

If the access log is enabled, format of the access log.

Possible values:

• common : The Common Log Format, shortcut to: %h %l %u %user %date "%r" %s %b

• combined : Another format widely recognized, shortcut to: %h %l %u [%t] "%r" %s %b "%i{Referer}" "%i{User-Agent}"

• custom pattern: see http://logback.qos.ch/manual/layouts.html#AccessPatternLayout.

Default value:%h %l %u [%t] "%r" %s %b "%i{Referer}" "%i{User-Agent}" "%reqAttribute{ID}"

Notes:

• The login of an authenticated user is implemented with %reqAttribute{LOGIN}.

• The token name used for requests will be added to the access log if the %reqAttribute{TOKEN_NAME} is added.

• The SonarQube’s HTTP request ID is implemented with %reqAttribute{ID}.

1) The SonarQube home directory is: the location where the SonarQbue distribution has been unzipped (for a ZIP installation); the installation directory of SonarQube within your container (for a Docker installation).

AI features

Properties
SQSCB-table-common system properties > elasticsearch
Description

sonar.aid.codefix.hidden

SONAR_AI_CODEFIX_HIDDEN

Disables the AI CodeFix feature¹⁾ completely in SonarQube Server and hides the feature from all users, including System Adminstrators.

Default value: false

1) See AI CodeFix

Last updated

Was this helpful?