Specifying Jahia properties

October 8, 2024

Jahia features and services can be configured in the jahia.properties file or in OSGi configuration files. Clustering settings can be specified in the jahia.node.properties file. The jahia.properties file and the jahia.node.properties file are located in the digital-factory-config/jahia directory. OSGi configuration files are located in the digital-factory-data/karaf/etc directory.

Jahia property descriptions

The following tables shows properties that you can add or modify in the jahia.properties file.

Jahia modes

Property name Description Default value
operatingMode Specifies a mode, either development, production, or distantPublicationServer development
maintenanceMode Enables maintenance mode, where no requests are served except to /tools/. For more information, see Enabling system maintenance and read-only modes. false
readOnlyMode Enables read-only mode and disables access to Page Composer, Content Editor, Studio, and administration modes. For more information, see Enabling system maintenance and read-only modes. false
sessionExpiryTime Sets the session lifetime in minutes 60

Disk paths

Configures where Jahia stores runtime data on disk, such repository, modules, temporary files

Property name Description Default value
jahiaVarDiskPath Defines the main location of runtime data. If the jahia.data.dir system property is not set, this value is used for that setting. Otherwise, this value is ignored. ${jahiaWebAppRoot}/../../../digital-factory-data
tmpContentDiskPath Defines the location of temporary files ${jahia.data.dir}/content/tmp/
jahiaModulesDiskPath Defines the location of modules ${jahia.data.dir}/modules/
jahiaImportsDiskPath Defines the location of imported files ${jahia.data.dir}/imports/
modulesSourcesDiskPath Defines the location of modules sources ${jahia.data.dir}/sources/
jahiaGeneratedResourcesDiskPath Defines where dynamically generated resources like aggregated CSS and JS files are stored. Unlike other DiskPath parameters, when running a Jahia cluster without sticky sessions (thus using distributed sessions), it must reference a directory shared between cluster nodes. See Configuring Jahia features for more details. ${jahia.data.dir}/generated-resources/
jahia.jackrabbit.home JCR repository home folder ${jahia.data.dir}/repository
jahia.jackrabbit.datastore.path JCR file datastore path in case of the file-based binary storage ${jahia.jackrabbit.home}/datastore

URL settings

Property name Description Default value
jahiaWebAppsDeployerBaseURL Provides your custom URL for the WAR deployer, if you use non-standard URL http://127.0.0.1:8080/manager/html/
permanentMoveForVanityURL If vanity URLs exists for a node and it is accessed with a non-default vanity URL, Jahia informs the client that the resource has permanently moved (HTTP status code 301). Note: this property doesn't apply if the server name of your project is not correctly set. true
urlRewriteSeoRulesEnabled Enables the URL rewrite engine to shorten content URLs in Live mode. For example, shortening http://my.acme.org/cms/render/live/en/site/myAcme/home.html to  http://my.acme.org/home.html true
urlRewriteRemoveCmsPrefix Removes the /cms prefix from URLs when SEO URL rewriting is activated (urlRewriteSeoRulesEnabled is set to true) true
urlRewriteUseAbsoluteUrls Enables generating absolute URLs for links to resources on other sites
 
true
siteURLPortOverride Forces the generation of siteURLs to a specified port. This bypasses the request.getServerPort() calls and everything else. Specify a port to force generation of the site URL (notably used in the Exit Administration button) to that port. Set to 0 to disable port overrides. 
Note: This property may cause issues with cookies or if you access Jahia through multiple front-end machines.
0
disableJsessionIdParameter Disables the JsessionId parameter added by the application server to track sessions when no cookie is present true
shiro.blockSemicolon Block request with a 400 Bad Request error if semicolon is found in the request URI (optional) true

Mail service configuration

Note: Mail server connection settings can be found in the /settings/mail-server repository node

Property name Description Default value
mail_maxRegroupingOfPreviousException Controls mail regrouping of a repeating exception. If a repeating exception occurs more than the maximum specified here, mail is sent and you are informed with an error. 500

Database properties

Note: Database connections are configured through the container-managed datasource connection. In Tomcat, the connection is set in the <jahia-web-app-dir>/META-INF/context.xml file.

Property name Description Default value
db_script

 

derby_embedded.script
hibernate.dialect Specifies the DB dialect used by Hibernate org.hibernate.dialect.DerbyTenSevenDialect
org.quartz.driverDelegateClass Specifies the Quartz scheduler driver delegate class org.quartz.impl.jdbcjobstore.StdJDBCDelegate

Template set

Property name Description Default value
default_templates_set Default value for template set sample-bootstrap-templates

File manager

Property name Description Default value
jahiaFileUploadMaxSize Configuration of the file manager that uses JCR as a back-end 104857600

Multilingual support

Property name Description Default value
characterEncoding Specifies character encoding (MIME charset) of the response that is sent to the client, request character encoding and e-mail charset UTF-8
org.jahia.multilang.default_language_code Specifies the fall-back language code after Jahia tries resolving the current browsing code from the session, the browser's settings, and the site's language list en
considerPreferredLanguageAfterLogin Specifies whether to switch to the user's preferred language after login. Language switch only occurs if the current site has entries in the user's preferred language false

Authentication

The following table describes container and cookie authentication, and CAS and SPENGO authentication properties.

Property name Description Default value
auth.container.enabled Enables the container authentication valve
 
false
auth.cookie.enabled Enables cookie authentication for login. The cookie authentication valve uses cookies to store an identifier corresponding to a specific Jahia user when they select the Remember me option in the login engine. true
auth.cas.enabled Enables the CAS authentication valve false
auth.cas.serverUrlPrefix Specifies the URL prefix of the CAS server https://localhost:8443/cas
auth.cas.loginUrl Specifies the redirect URL to the CAS server for login ${auth.cas.serverUrlPrefix}/login
auth.cas.logoutUrl Specifies the logout URL to invalidate the user session on the CAS server ${auth.cas.serverUrlPrefix}/logout
auth.spnego.enabled Enables the SpnegoHttpFilter and adjust its configuration in the applicationcontext-spnego.xml file false

Custom errorDocument site property

Property name Description Default value
site.error.enabled Enables specific error document pages for each site true

User and group name validation

Property name Description Default value
userManagementUserNamePattern Specifies the pattern for the user name validation. The new user name will be tested against this regular expression (see java.util.regex.Pattern) pattern.
Please update the resource bundle message: org.jahia.admin.users.ManageUsers.onlyCharacters.label (JahiaInternalResources.properties) to reflect the pattern changes.
[0-9a-z_A-Z\\-\\{\\}\\.@]+
userManagementGroupNamePattern Specifies the pattern for the group name validation. The new group name will be tested against this regular expression (see java.util.regex.Pattern) pattern.
Please update the resource bundle message: org.jahia.admin.users.ManageGroups.onlyCharacters.label (JahiaInternalResources.properties) to reflect the pattern changes.
 = [0-9a-z_A-Z\\-\\{\\}]+

File error dumping

By default, Jahia dumps contain errors in files. Dump files are created in temp directory and have the following format:
error-DATE-TIME-EXCEPTION_COUNT_SINCE_STARTUP.txt
Generated files contain information to help you understand the context of an error. When submitting an error to Jahia support, activate this logging and submit files into the support tracking system.

Property name Description Default value
dumpErrorsToFiles Enables file error dumping true
fileDumpMaxRegroupingOfPreviousException Controls file regrouping of a repeating exception. If a repeating exception occurs more than this maximum, a file will be dumped anyway, just so that we are still informed in case this is the only error sent. 500
useJstackForThreadDumps If set to true, a call to an external jstack tool (from Oracle Java Platform SE package) will be done by Jahia to generate a thread dump. This generate more accurate thread dumps, although the thread dump is slower.
Note: It is not guaranteed that a dump can be read by any thread dump analyzer tool available on the market.
Ensure that "jstack" is available on your PATH before enabling this property.
false

Concurrent processing options

Property name Description Default value
maxModulesToGenerateInParallel Specifies how many threads can perform heavy weight processing (module creation not served from the cache) 50
moduleGenerationWaitTime Specifies how long threads wait before starting to generate modules in heavy load situations (in milliseconds) 10,000
moduleGenerationThreadDumpToSystemOut Generates a thread dump into System.out for troubleshooting the cause of a slowdown
 
true
moduleGenerationTthreadDumpToFile Generates a thread dump into a separate file, under the ${java.io.temp}/jahia-threads/<current-date> folder, for troubleshooting the cause of a slowdown true
minimumIntervalAfterLastAutoThreadDump When Jahia does not respond fast enough (see moduleGenerationWaitTime) an automatic thread dump will be created to help figuring out what caused the slowdown. In order to not spam the log file, a minimum interval between two dumps can be defined. Set to -1 to disable automatic thread dumps. 60,000
maxRequestRenderTime Specifies the maximum time, in milliseconds, that request rendering continues before an error is thrown and the request processing is stopped. Specify a value of -1 or 0 to apply no timeout to request processing.
Note: A fragment rendering cannot be canceled. This timeout check is applied after the fragment rendering completes and before other fragments start to render.
60,000

Search Indexes Consistency Check and Fix

See http://jackrabbit.apache.org/api/2.2/org/apache/jackrabbit/core/query/lucene/ConsistencyCheck.html for details.

Property name Description Default value
jahia.jackrabbit.searchIndex.enableConsistencyCheck Specifies whether to perform a consistency check for the Jackrabbit search indexes, depending on the forceConsistencyCheck parameter. If set to false, no consistency check is performed on startup. false
jahia.jackrabbit.searchIndex.forceConsistencyCheck Runs a consistency check for search indexes on every startup. If false, a consistency check is only performed when the search index detects a prior forced shutdown. false
jahia.jackrabbit.searchIndex.autoRepair Repairs errors detected by a consistency check of search indexes. If false, errors are only written to the log. true
jahia.jackrabbit.searchIndex.spellChecker.distanceImplementation Specifies the distance implementation for suggested words for the spell checker org.apache.lucene.search.spell.LevensteinDistance
jahia.jackrabbit.searchIndex.spellChecker.minimumScore Specifies the minimum similarity score for suggested words for the spell checker. A lower value increases the amount of suggestions. 0.7

Workspace Persistence Manager Consistency Check and Fix

Property name Description Default value
jahia.jackrabbit.consistencyCheck Specifies whether to perform a consistency check of the JCR repository during startup false
jahia.jackrabbit.consistencyFix Specifies whether the consistency check should attempt to fix issues that it discovers false
repositoryDirectoryListingDisabled Disables the directory listing for the /repository servlet.
Note: The WebDAV client access won't work in such a case.
false
repositoryAllowedNodeTypes Specifies the node types that can be exposed through the /repository WebDAV servlet. Node types not listed here are unavailable. rep:root,jnt:virtualsitesFolder,
jnt:virtualsite,jnt:folder,jnt:file
jahia.publication.versionedTypes Specifies the list of node types that Jahia creates versions for when publishing. Also determines visibility of versioning tab in content editor advanced options. Also determines visibility of versioning tab in content editor advanced options. jmix:editorialContent,jnt:file
jahia.publication.excludedVersionedTypes Specifies the list of node types that Jahia excludes for creating versions for when publishing. This takes priority over jahia.publication.versionedTypes. Also determines visibility of versioning tab in content editor advanced options. <empty list>
jahia.fileServlet.statisticsEnabled Enables access statistics logging in the Files servlet that serves files from the JCR repository false
jahia.jcr.maxNameSize Specifies the maximum size of node names 32
jahia.ui.contentTab.defaultSynchronizeNameWithTitle Enables the automatic synchronization of the title with the system name in Page Composer and Content Editor true
accessManagerPathPermissionCacheMaxSize Specifies the maximum number of entries for the JCR access manager cache that optimizes the resolution of permissions for node paths. The cache is an LRU cache that retains the specified number of entries in memory and removes the least recently used entries. The cache is instantiated for each JCR session and is usually short-lived, except in the case of long-running operations such as exports, publications, and copies.
It is recommended to keep this value low as the cache can grow quite fast on large JCR repositories. If no value is specified, the default value is 100 entries.
100
jahia.jcr.nodesCachePerSessionMaxSize

Specifies the maximum number of entries allowed in the JCRNodeWrapper instances cache. These caches are designed to optimize direct access to JCR nodes by storing recently accessed entries. The caches are implemented as LRU (Least Recently Used) caches, retaining the specified number of entries in memory and removing the least recently used entries when the limit is exceeded.
Two caches are created for each JCR session: one cache per path and one cache per identifier.
JCR sessions are typically short-lived, except in cases of long-running operations such as exports, publications, and copies.
If no value is specified, the default value is 100 entries.
Setting this property to zero or a negative value will disable the limit.
Available from Jahia 8.1.8.0 and Jahia 8.2.1.0

100
jahia.jackrabbit.queryStatsEnabled Enables the collection of JCR query execution statistics. You can view the list of slowest queries and most popular queries in JCR Query Statistics in Jahia Tools. true

Video thumbnails service

Property name Description Default value
jahia.dm.thumbnails.video.enabled Enables the video thumbnails service. The service automatically creates thumbnail images for uploaded video files. false
jahia.dm.thumbnails.video.ffmpeg The path to the ffmpeg utility executable file, which is required by the video thumbnails service. The path is typically /usr/bin/ffmpeg for Linux and c:/Program Files (x86)ffmpeg-20120503-git-c1fe2db-win64-static/bin/ffmpeg.exe for Windows.
If the ffmpeg/bin folder is present in your PATH, you can specify only the executable name here.
ffmpeg

Image conversion service

Property name Description Default value
imageService Specifies the image service to use. The native Java service is ImageJAndJava2DImageService.
To use ImageMagick, set the value to ImageMagickImageService and the ImageMagick path to the proper value. Note: ImageMagic will by default use a lot of memory for conversions. If you want to limit memory usage (for example in Docker containers), you should use an environment variable such as MAGIC_MEMORY_LIMIT=1GiB.
ImageJAndJava2DImageService
imageMagickPath The path to ImageMagick and exiftools. For Windows the path is typically C:\\Programs\\ImageMagick;C:\\Programs\\exiftool<p< p="<> </p<>  

Source control and Maven executables

Property name Description Default value
gitPath Specifies the path to git executable git
svnPath Specifies the path to svn executable svn
mvnPath Specifies the path to mvn executable mvn

System users resources

Property name Description Default value
guestUserResourceModuleName Associates users with a resource bundle. Set the module name that contains the resource for guest DefaultJahiaTemplates
guestUserResourceKey Specifies the key for guest label.user.guest    

System group resources

Property name Description Default value
guestGroupResourceModuleName Associates groups with a resource bundle. Set the module name that contains the resource for guest. DefaultJahiaTemplates
guestGroupResourceKey Specifies the key for guest label.group.guest

Users and groups

Property name Description Default value
jahiaJCRUserCountLimit Limits the number of JCR users which are read for the Users page in Server Settings>Users and Roles. By default, 100 JCR users are retrieved. 100
jahia.settings.userDisplayLimit Limits the number of users that display by default in the Users page in Server Settings>Users and Roles. By default, 100 users display. 100
jahia.settings.memberDisplayLimit Limits the total number of group members that display by default in the Groups page in Server Settings>Users and Roles. By default, 100 groups display. 100

OSGi settings

Property name Description Default value
karaf.remoteShell.port Specifies the port which the Apache Karaf OSGi command line shell listens for SSH connections. Set it to a negative value to disable this feature. 8101
karaf.remoteShell.host Specifies the bind address for the SSH shell. 127.0.0.1 means the SSH shell only allows local connections to be established. You may define a dedicated IP address, the console will bind to, or 0.0.0.0 which means it will be bound to all available network interfaces. 127.0.0.1

Mass imports

Define whether you want to first expand all binary files on your hard drive before import instead of searching them in the zip files. Expanding is much faster for thousands of files. You can configure the path where to expand those files. Files will be deleted at the end of import. You can also configure at what rate you want to save your node.

Property name Description Default value
expandImportedFilesOnDisk Specifies whether to first expand all binary files on your hard drive before performing a mass import, instead of searching them in the zip files. Expanding is much faster for thousands of files. false
expandImportedFilesOnDiskPath Specifies the path to expand binary files in when performing a mass import. Files are deleted at the end of import. /tmp
importMaxBatch Specifies the rate at which to save your node during a mass import 500

Search and indexing

Property name Description Default value
queryApproxCountLimit Specifies how many results should be iterated through before calculating approximate number of further results 100
jahia.jackrabbit.reindexOnStartup Specifies whether to reindex all repository content on server startup
Note: Reindexing can take a significant amount of time depending on the volume of data
false

Work in progress

Property name Description Default value
wip.checkbox.checked Specifies whether work in progress checkbox should be checked when opening Content Editor. false

Tagging service

Property name Description Default value
tag.suggester.faceted Specifies whether the query used to suggest tags uses a faceted query to retrieve the tags. The faceted suggester sorts tags by usage count and provides the count in the result map. The faceted suggester can be slower than the default suggester. Set to true to enable the faceted suggester. false

Publication settings

Property name Description Default value
jahia.ui.pickers.suppressPublicationInfo Specifies whether publication status information is present in content picker UIs. If suppressed, publication status is not calculated, which can speed up the rendering of corresponding UI elements. false
jahia.publication.batchSize Defines the size of publication batch, including how many nodes can be published at once. If the number of nodes in the publication job exceeds this limit, the publication action is performed in batches. Specify a value of -1 to define no limit on the batch. In this case, the publication job processes all specified nodes at once. 100
jahia.publicationManagerNodeTypes Specifies which additional items display in the Publication Manager, such as menu labels, and internal and external links jmix:publication,jmix:workflowRulesable,
jnt:navMenuText
area.auto.activated Specifies whether areas are automatically activated the first time a page display in Page Composer true
external.users.properties.readonly Lists the external user properties that are read-only. All the other user properties can be overridden locally. You can also set read-only properties for a specific provider by setting the same property suffixed with a period (.) and the provider key, for example external.users.properties.readonly.ldap=j:firstName,j:lastName,j:organization. j:firstName,j:lastName,j:organization,
j:email

REST API

Property name Description Default value
jahia.find.disabled Disables the find servlet and prevents queries through the API. Setting to false allow users to perform free-form JCR queries on {workspace}/{language}/query. This setting does not affect usage of JCR prepared queries. true
jahia.find.nodeTypesToSkip Specifies the node types that are skipped by the JCR REST API jnt:passwordHistory,jnt:passwordHistoryEntry

Aggregate and cache

Property name Description Default value
useNewAggregateAndCacheImplementation Switches between the Render chain V1 (false) and V2 (true) implementation false

Documentation

Property name Description Default value
documentation.link Defines the link to the documentation https://academy.jahia.com/documentation/digital-experience-manager/7.3
sql2CheatSheet.link Defines the link to the JCR-SQL2 Query cheat sheet topic in the Academy. The link displays below advanced searches in jContent. https://academy.jahia.com/documentation/techwiki/search/jcrsql2-query-cheat-sheet
whatsNew.link Defines the link to the What's New? page in the Academy https://www.jahia.com/$ui-lang([en,fr],en)/customers/whatsnew?dxversion
whatsNew.display Specifies whether to display the What's New? button in the Jahia menu true

Contribution UI customization

Property name Description Default value
jahia.ui.dragAndDrop Defines drag and drop behavior in Edit mode. You can specify the following values:
ENABLED: All entire content is draggable
DRAG_ZONE_IN_EDIT_AREA: A drag zone displays at the top left of the module. Content can only be dragged in this zone
DISABLED: All dragging and dropping is disabled
DRAG_ZONE_IN_EDIT_AREA
jahia.ui.createChildrenDirectButtons.limit

Sets the threshold to display a single "Any Content" button in Page Composer to create content, instead of displaying one button per available content type.

Available since Jahia 8.1.4

5

JQuery configuration

Property name Description Default value
jahia.jquery.version The JQuery version for using JQuery in a page. The system looks for jquery-[version].min.js. The JQuery module provides versions 1.12.4, 3.4.1 and 3.6.0. Other versions can be added in a separate module. 3.6.0
JQuery-migratecanbeaddedhere:jahia.jquery.plugins JQuery mapping plugins. Includes one or more JS files every time JQuery is called in a page. Note that JQuery-migrate (jquery-migrate-3.0.1.min.js) can be added here. jquery-migrate-3.0.1.min.js

Site import

Property name Description Default value
jahia.site.import.scanner.interval Specifies the interval of the site import file observer in milliseconds 30000

Other settings

Property name Description Default value
jahia.atmosphere.heartbeat Specifies the interval (in seconds) at which the system checks the validity of the session. Ask for assistance before changing this value. Introduced with Jahia 8.0.1.0. 60
loadJahiaContext Automatically injects javascript/initJahiaContext.js in live mode, this is necessary for CKEditor to be loaded while in live mode. Turning this setting to false might be needed for some deployments. Introduced with Jahia 8.1.6.0 true
protectedResourceAccessStrategy Define behaviour when the user has no access to a resource (page or file)
silent : returns a 404 when the resource does not exist or is not accessible
authorizationError : returns a 401 for guest users and 403 for authenticated users without access
silent

Jahia node property descriptions

Cluster settings

The following table shows properties that you can add or modify in the jahia.node.properties file.

Property name Description Default value
cluster.activated Activates most of the clustering communicating false
cluster.node.serverId The serverId must be unique for each node in the cluster dx-8f590fe5-02c3-4f8f-9cf0-a83f080d10f6
processingServer Specifies whether this instance of Jahia will execute long-running operations such as background jobs (for example workflow, imports, and text extraction). Only one cluster node may be a processing server. All other nodes must set this value to false. true
cluster.tcp.bindAddress The IP or unambiguous hostname to start the server socket on. If left empty, the IP address of first non-loopback network interface that can be detect on the machine is used.  
cluster.tcp.bindPort The port number to bind the server socket to JGroups-based cluster communication for caches and Atmosphere messages  7870
cluster.hazelcast.bindPort The port number to bind the server socket to Hazelcast-based clustered communication for bundle deployment 7860

jContent and Content Editor configuration

org.jahia.modules.jcontent.cfg

Property name Description Default value
showPageComposer

Display a new version of Page Composer inside jContent.

This feature is currently under development and is not supported yet. This shall not be enabled on production environments.

false

org.jahia.modules.contentEditor.cfg

Property name Description Default value
createChildrenDirectButtons.limit

Threshold to display a single "New Content" button in jContent to create content, instead of displaying one button per available content type.
Since Content Editor 4.3.0

5