Configuration

This section describes all the configuration options of Gentics Portal | java.

Configuration file

The portal configuration is loaded from the config/server.yml file, which has to be a valid YAML file.

The default configuration is available at the end of this section.

There are default values for most entries but the following settings must be explicitly set for every project:

Overriding settings

While it is advisable to manage the portal configuration for a project in a version control system, it is often necessary to overwrite some settings for a local development setup, or because of project staging.

Local config file

All settings in config/server.local.yml will override (or extend) the values specified in the main configuration file. Note that list values, are not merged but completely overwritten.

Environment variables

Many settings can be overwritten by setting environment variables. What settings can be specified this way, and the names of the environment variables are listed in this table.

Settings

This section contains all available settings for Gentics Portal | java.

General

In the general section setting the meshProject, portalAPIKey and serverUrl is mandatory, for portal to start.

While configuring the startPage is not mandatory, the portal cannot serve / without the setting (requests for valid paths will be fine).

Variable Type Default value Description

meshProject

String

Mandatory

Name of the Mesh project.

serverUrl

URL

Mandatory

The URL used for link resolving.

autoDeleteUploads

boolean

Whether to automatically delete uploaded files when the request is handled.

breadcrumbsLevel

int

0 (unlimited)

The maximum number of breadcrumb entries displayed (beginning at the end).

cookieHintPage

String

Path to the cookie hint page.

defaultLanguage

String

en

The default language the portal assumes when it cannot infer the desired language from the request.

folderTemplateName

String

null

The name of the folder index template to use when listing contents of folders. If no template is specified, requesting a folder will result in a 404 response.

i18nPath

String

data/i18n

Path to YAML resource bundles

implementationVersion

String

null

The implementation version of the branch to use. When this is null, branches are not restricted by implementation versions.

licenseKey

String

The license key

licenseKeyPath

String

license.key

Path to the license key file

meshSchemaPrefix

String

null

Prefix of schemas in Mesh, if different from the project name. When this is null, the name of the Mesh project is used as the prefix. When using the 'Project per Node' setting in Gentics CMS, make sure that the prefix is different from the projectname.

networkTimeout

int

30

Timeout for network requests (in- and outbound) in seconds

queryPath

String

data/queries

Path to files containing graphql queries.

remoteLicenseRetrievalBypass

boolean

false

Whether to bypass the license retrieval from Mesh.

serverHost

String

0.0.0.0

The host IP address the portal binds to. Note that by default the portal will bind to all interfaces. When a reverse proxy is used, it is advised to only bind to 127.0.0.1.

serverPort

int

3000

The port the portal runs on. If this is different then the port in the serverUrl, a reverse proxy will be needed to resolve links correctly

startPage

String

Path to the start page. A path to any language is enough, language fallback will be done automatically. While not mandatory, the portal cannot serve the path / when this is not set correctly.

templatesPath

String

data/templates

Path to handlebar templates.

templatesTolerateErrors

boolean

true

Whether the templating engine should tolerate any errors, otherwise fail with HTTP 500.

uploadDir

String

data/uploads

Path to a custom directories for temporary storing uploaded files.

Authentication

Note that authentication must be explicitly enabled by initializing an implementation of AuthenticationBaseHandler in the projects BootstrapInitializer (see also the authentication documentation).

Variable Type Default value Description

authentication.insecureSsl

boolean

false

Flag to allow insecure SSL connections to the OAuth2 server.

authentication.keycloak

KeycloakOptions

Keycloak specific authentication options

authentication.loginEndpoint

String

/auth/login

Path to the API endpoint that can be called to start login procedure.

authentication.loginRedirect

LoginRedirectOptions

Configuration for redirects after a successful login

authentication.logoutEndpoint

String

/auth/logout

Path to the API endpoint that can be called to start logout procedure.

authentication.logoutRedirect

String

/

Path to which the user will be redirected after logout. The default is to redirect to /

authentication.protectedEndpoints

List<EndpointOptions>

List of endpoints that are protected.

authentication.redirectCookieMaxAge

int

-1 (session cookie)

Maximum age of the authentication redirect cookie in seconds, or -1 for session cookies.

authentication.singleSignOut

SingleSignOutOptions

Single sign out configuration

authentication.useSessionCookies

boolean

false

Ignore the max age from original authentication cookies and create session cookies instead

authentication.useUnauthorizedRedirect

boolean

false

Whether to redirect anonymous requests to protected resources to the 401 error page

Keycloak

Missing settings will be taken from the …​/config/keycloak.json if it is available.

Variable Type Default value Description

authentication.keycloak.clientId

String

Mandatory

The client ID the portal should use

authentication.keycloak.realmUrl

String

Mandatory

The URL to the Keycloak realm this portal uses

authentication.keycloak.callbackPath

String

/auth/callback

The path to the OAuth2 callback endpoint

authentication.keycloak.clientSecret

String

The client secret taken from the configuration of the Keycloak realm

authentication.keycloak.retryPeriodSeconds

int

If set to greater than zero, the Keycloak connection initialization will try to start again, if Keycloak server is unreachable. If zero, the portal is shut down. If less than zero, the old behavior (instant fail) is applied

authentication.keycloak.rpInitiatedLogout

boolean

false

Whether the portal should redirect to Keycloaks "end_session_endpoint" on a logout request

Endpoints

There are no mandatory fields, but endpoint definitions without any permissions, or an invalid path (e.g. an * that is not at the end of the path) will be ignored. See the detailed authentication documentation for examples.

Variable Type Default value Description

authentication.protectedEndpoints.mode

ALL, ANY

ANY

Mode for checking permissions. ALL means that user needs to have all roles, ANY means that user needs to have at least one role.

authentication.protectedEndpoints.path

String

The path to protect. The path may end with an * to also catch paths which start with this value.

authentication.protectedEndpoints.permissions

List<String>

List of required role names.

Single sign out

All single sign out settings have usable default values.

Variable Type Default value Description

authentication.singleSignOut.externalPortals

List<String>

List of all URLs of external portals

authentication.singleSignOut.singleSignOutPath

String

/auth/logoutAll

Endpoint for starting single sign out.

Caching

All caching settings have usable default values.

Variable Type Default value Description

caching.binaryMaxAge

int

86400 seconds (1 day)

The max-age cache-control setting for binaries loaded from Mesh.

caching.customParameters

List<String>

Custom values from the routing context to be added to content cache keys.

caching.diskCacheConfig

String

config/cache.ccf

Path of the JCS configuration file.

caching.diskCacheRegionName

String

content

Name of the disk cache region to be used for the caching handler. The in-memory cache solution will be used when no region name has been specified.

caching.enabled

boolean

true

Enable or disable caching.

caching.expireTime

int

60

The time after which elements in the cache expire when they are not accessed.

caching.maximumSize

int

256

The maximum number of elements stored in a cache.

Compatibility

All compatibility settings are disabled by default.

Variable Type Default value Description

compatibility.mapNodeResponse

boolean

true

Whether the NodeResponse to GraphQL response mapper should be applied for previews.

compatibility.preview

boolean

false

Whether to use preview modes for GCMS versions older than 5.34.x.

Data provider

All data provider options have usable default values.

Variable Type Default value Description

dataProvider.meshData

Map<String, List<String>>

Map of data keys → webroot paths of Mesh content to provide

dataProvider.preventStartupOnError

boolean

false

Flag to prevent startup of the portal in case of errors during loading the configured data.

dataProvider.refreshTime

int

60

Refresh interval in seconds.

dataProvider.retryOnError

boolean

true

Flag to retry loading data in case of errors.

dataProvider.webData

Map<String, WebDataOptions>

Map of data keys → web data to provide

Web data

Variable Type Default value Description

dataProvider.webData.url

String

Mandatory

URL of the web page to load.

dataProvider.webData.format

JSON, RAW

RAW

Format of the loaded web page. RAW means the loaded data is interpreted as text. When the format is JSON, the loaded data will be parsed into a Vert.x JsonObject.

dataProvider.webData.options

Map<String, String>

Options for the post processor.

dataProvider.webData.postProcessor

String

null

Fully qualified class name of an optional post processor implementation, which must implement the interface DataProviderPostProcessor.

Mesh

The apiKey should be configured in a server.local.yml file, to prevent storing the API key in a version control system.

Variable Type Default value Description

mesh.apiKey

String

Mandatory

API key for accessing Mesh as admin user.

mesh.authenticationMode

BOTH, COOKIE, HEADER

Whether to send the API token via authentication header, cookie, or both (default: both)

mesh.cookieForwardWhitelist

Set<String>

Names of cookies which can be forwarded to Mesh by plugin proxy requests (default: forms-data, forms-voted).

mesh.eventbus

EventbusOptions

Eventbus Configuration

mesh.host

String

localhost

Mesh host.

mesh.maxRequests

int

64

Set the maximum number of requests to execute concurrently. Above this requests queue in memory, waiting for the running calls to complete.

mesh.maxRequestsPerHost

int

64

Set the maximum number of requests for each host to execute concurrently. Above this requests queue in memory, waiting for the running calls to complete.

mesh.monitoringPort

int

8081

The port of the monitoring verticle.

mesh.port

int

8080

Mesh port.

mesh.protocolVersion

DEFAULT, HTTP_1_1, HTTP_2

Mesh HTTP protocol version.

mesh.proxyHeaderWhitelist

Set<String>

Accept, Authorization, Content-Encoding, Content-Length, Content-Type, Cookie

Whitelist for HTTP headers which may be forwarded to Mesh plugins. Note that the default values are always allowed and cannot be removed.

mesh.requiredPlugins

List<String>

(none)

List of Mesh plugins which must be present for this portal

mesh.ssl

boolean

false

Mesh SSL flag.

mesh.writeQueueMaxSize

int

8192

Set the maximum number of bytes stored in the write queue when forwarding incoming requests to Mesh using the okHttp Client.

Eventbus

All eventbus settings have usable default values.

Variable Type Default value Description

mesh.eventbus.pingInterval

int

100

Eventbus ping interval in ms.

mesh.eventbus.retryTimeout

int

5000

Eventbus retry timeout in ms.

Monitoring

All monitoring settings have usable default values.

Variable Type Default value Description

monitoring.conservativePortalState

boolean

false

Whether the portal state should change to NETWORK_ERROR as soon as a GraphQL request to Mesh fails with a network error.

monitoring.enabled

boolean

false

Whether the monitoring server should be enabled.

monitoring.host

String

127.0.0.1

The host which is used for the monitoring server.

monitoring.ignoreMeshReady

boolean

true

Whether to ignore the Mesh ready status for the portal ready check.

monitoring.jmxEnabled

boolean

false

Whether JMX should be enabled

monitoring.livePath

String

gpj.live

Path to the file which tracks liveness of the portal

monitoring.liveUpdateInterval

int

10

Set the interval in seconds for updating the modified time of the live file

monitoring.maxTimeouts

int

10

Maximum number of timeouts of the MeshRestClient before conservativePortalState will cause a state change to NETWORK_ERROR.

monitoring.port

int

3001

The port which is used for the monitoring server.

monitoring.startupCheckMode

OFF, ABORT, UNREADY

ABORT

How to handle failing start-up checks.

Navigation

All navigation settings have usable default values.

Redirects

While there are no mandatory redirect settings, it is highly recommended to at least define redirects for the HTTP status codes 404 Not Found and 500 Internal Server Error (and 403 Forbidden if authentication is enabled). Otherwise these errors will just result in an empty response.

Variable Type Default value Description

redirects.custom

CustomRedirectOptions

Optional custom redirects.

redirects.statusPages

Map<String, String>

Map of status pages. Keys are HTTP response status codes, and values are the webroot paths of the error respective pages. Language fallback will be done automatically.

Custom redirects

See the documentation for the custom redirects feature for a detailed description about the source and helperClass settings.

Variable Type Default value Description

redirects.custom.helperClass

String

Mandatory

Fully qualified class name of helper implementation, which must implement RedirectHelper.

redirects.custom.source

String

Mandatory

Source for custom redirects. Use prefix 'dataProvider:' to use data from the data provider.

redirects.custom.helperConfig

Map<String, String>

Configuration options for helper class.

redirects.custom.permanentRedirects

boolean

false

Flag to use "301 Moved Permanently" responses instead of "303 See Other".

redirects.custom.reload

boolean

false

Flag to reload the redirects source for every request.

Security

Variable Type Default value Description

security.additionalResponseHeaders

Map<String, String>

No additional headers

Additional HTTP headers added to each response

security.allowedIps

Set<String>

Empty (no IPs allowed)

Allowed IPs which can access backend API endpoints of the portal

security.apiKey

String

None

The API key required by some backend API endpoints

security.cookieSameSitePolicy

None, Strict, Lax

STRICT

The SameSite policy to use for cookies (NONE, LAX or STRICT)

security.encryptCookies

boolean

false

Whether to encrypt the authentication cookies

security.encryptionMode

DISABLED, PASSWORD_ONLY_KEY, AUTO_GENERATED_KEY

DISABLED

How keys for encryption are generated. DISABLED means no encryption, PASSWORD_ONLY_KEY uses the configured password, AUTO_GENERATED_KEY creates a secret key during portal startup.

security.encryptionPassword

String

(empty)

The password to use for encryption. Only used when encryptionMode is set to PASSWORD_ONLY_KEY.

security.useHostCookiePrefix

boolean

false

Whether secure cookie names will be prefixed with "__Host-"

Static handler

All static handler settings have usable default values.

Variable Type Default value Description

static.caching

boolean

false

Flag to turn on caching of static files.

static.maxAge

long

86400s (one day)

Maximum age in seconds for caching of static files.

static.path

String

data/static

Path to static files.

Vert.x

All Vert.x settings have usable default values.

Variable Type Default value Description

vertx.eventPoolSize

int

Number of CPUs times two

The thread pool size for standard verticles

vertx.workerPoolSize

int

20

The thread pool size for worker verticles

All search handler settings have usable default values.

Variable Type Default value Description

search.enabled

boolean

false

Whether the search handler should be used.

search.endpoint

String

/search

The endpoint for the search handler. Custom searches can be made by appending the custom query name as a path segment.

search.paginationEllipsis

String

…​

The string to use for the ellipsis when there are more pages as can be displayed in the pagination.

search.paginationMaxPages

int

6

The maximum number of links in the pagination.

search.paginationNext

String

>

The string to use for the "next" link in the pagination.

search.paginationPrevious

String

<

The string to use for the "previous" link in the pagination.

search.querySize

int

8

The number of hits returned in a single result page. This must be the same in the configuration of the search plugin, or the results will be undefined.

search.template

String

searchresults

The name of the handlebars template to render results. May contain directory segments, and the .hbs extension is optional.

Environment variables

The following environment variables can be used to override configuration settings.

Variable Field Description

AUTH_CALLBACK_ENDPOINT

callbackPath

Override the path to the OAuth2 callback endpoint

AUTH_CLIENT_ID

clientId

Override the client ID

AUTH_CLIENT_SECRET

clientSecret

Override the client secret

AUTH_COOKIE_SAME_SITE

cookieSameSitePolicy

Override the SameSite policy for cookies. (Default: STRICT)

AUTH_ENCRYPT_COOKIES

encryptCookies

Override whether to encrypt authentication cookies.

AUTH_INSECURE_SSL

insecureSsl

'true' if insecure SSL connections should be trusted. Default: false

AUTH_LOGIN_ENDPOINT

loginEndpoint

The path of the login endpoint. Default: /auth/login

AUTH_LOGOUT_ENDPOINT

logoutEndpoint

The path of the logout endpoint. Default: /auth/logout

AUTH_LOGOUT_REDIRECT

logoutRedirect

The url to redirect after logout.

AUTH_REALM_URL

realmUrl

Override the realm URL

AUTH_REDIRECT_COOKIE_MAX_AGE

redirectCookieMaxAge

The max age of the redirect cookie in seconds. Default: session cookie

AUTH_RETRY_PERIOD_SECONDS

retryPeriodSeconds

Override the 'retry' period value

AUTH_RP_INITIATED_LOGOUT

rpInitiatedLogout

Override whether the portal should redirect to Keycloaks "end_session_endpoint" on a logout request

AUTH_USE_SESSION_COOKIES

useSessionCookies

Override whether to ignore the max age from original authentication cookies and create session cookies instead

AUTH_USE_UNAUTHORIZED_REDIRECT

useUnauthorizedRedirect

Override whether to redirect anonymous requests to protected resources to the 401 error page

BREADCRUMBS_LEVEL

breadcrumbsLevel

Override the server breadcrumbs level

CACHING_BINARY_MAX_AGE

binaryMaxAge

Override the max-age cache-control setting for Mesh binaries

CACHING_CONFIG_FILE

diskCacheConfig

Override the path to the JCS configuration file.

CACHING_DISK_CACHE_REGION_NAME

diskCacheRegionName

Override the configured disk cache region name.

CACHING_ENABLED

enabled

Override the caching enabled flag.

CACHING_EXPIRE_TIME

expireTime

Override the expire time value.

CACHING_MAXIMUM_SIZE

maximumSize

Override the maximum cache size.

COMPATIBILITY_NODE_RESPONSE_MAPPER

mapNodeResponse

Override the compatibility map node response flag.

COMPATIBILITY_PREVIEW

preview

Override the compatibility preview flag.

DEFAULT_LANGUAGE

defaultLanguage

Override the default language

GPJ_LIVE_PATH

livePath

Override path to the file which tracks liveness of the portal

GPJ_LIVE_UPDATE_INTERVAL

liveUpdateInterval

Override the interval in seconds for updating the modified time of the live file

GPJ_LOGIN_REDIRECT_CMS_PAGE

cmsPage

Override whether the redirect is a path to a CMS page. (Default: false)

GPJ_LOGIN_REDIRECT_DEFAULT

defaultRedirect

Override the default redirect when the AUTH_REDIRECT cookie is not set. (Default: /)

GPJ_LOGIN_REDIRECT_PATH

path

Override the redirect after successful login. (Default: /auth/loggedin)

GPJ_MONITORING_STARTUP_CHECKS

startupCheckMode

Override how to handle failing start-up checks.

GPJ_NETWORK_TIMEOUT

networkTimeout

Override the timeout for network requests (in- and outbound) in seconds

GPJ_SEARCH_ELLIPSIS

paginationEllipsis

Override the string to use for the pagination ellipsis.

GPJ_SEARCH_ENABLED

enabled

Override whether the search handler should be enabled.

GPJ_SEARCH_ENDPOINT

endpoint

Override the search endpoint.

GPJ_SEARCH_NEXT

paginationNext

Override the string for the "next" pagination link.

GPJ_SEARCH_PAGINATION_MAX_PAGES

paginationMaxPages

Override the maximum number of links in the pagination

GPJ_SEARCH_PREVIOUS

paginationPrevious

Override the string for the "previous" pagination link.

GPJ_SEARCH_QUERY_SIZE

querySize

Override the query size

GPJ_SEARCH_TEMPLATE

template

Override the template used to render results.

I18N_PATH

i18nPath

Override the server i18n path.

IMPLEMENTATION_VERSION

implementationVersion

Override the implementation version.

LICENSEKEY

licenseKey

The licence key

LICENSEKEY_PATH

licenseKeyPath

Override the default licence key file path.

MESH_API_KEY

apiKey

Override the configured mesh API key.

MESH_AUTHENTICATION_MODE

authenticationMode

Override whether to send the API token via authentication header, cookie, or both.

MESH_EVENTBUS_PING_INTERVAL

pingInterval

Override the eventbus ping interval.

MESH_EVENTBUS_RETRY_TIMEOUT

retryTimeout

Override the eventbus connection retry interval.

MESH_HOST

host

Override the configured mesh host.

MESH_MAX_REQUESTS

maxRequests

Override the maximum number of requests to Mesh to execute concurrently

MESH_MAX_REQUESTS_PER_HOST

maxRequestsPerHost

Override the maximum number of requests for each host to Mesh to execute concurrently

MESH_MONITORING_PORT

monitoringPort

Override the Mesh monitoring port

MESH_NETWORK_TIMEOUT

networkTimeout

This option is deprecated and should not be used. Use `GPJ_NETWORK_TIMEOUT` instead.

MESH_PORT

port

Override the configured mesh port.

MESH_PROJECT

meshProject

Override the mesh project name.

MESH_PROTOCOL_VERSION

protocolVersion

Override the configured mesh HTTP protocol version.

MESH_SCHEMA_PREFIX

meshSchemaPrefix

Override the mesh schema prefix.

MESH_SSL

ssl

Override the configured mesh ssl flag.

MESH_WRITE_QUEUE_MAX_SIZE

writeQueueMaxSize

Override the maximum number of bytes stored in the write queue when forwarding incoming requests to Mesh using the okHttp Client.

MONITORING_CHECK_MESH_READY

ignoreMeshReady

Override the ignore Mesh ready flag.

MONITORING_CONSERVATIVE_PORTAL_STATE

conservativePortalState

Override activation of conservative portal state

MONITORING_ENABLED

enabled

Override whether monitoring should be enabled.

MONITORING_HTTP_HOST

host

Override the monitoring server host.

MONITORING_HTTP_PORT

port

Override the monitoring server port.

MONITORING_JMX_ENABLED

jmxEnabled

Override whether JMX should be enabled.

MONITORING_MAX_TIMEOUTS

maxTimeouts

Override the maximum number of MeshRestClient timeouts before a state change to NETWORK_ERROR

NAV_BREADCRUMBS_LEVEL

breadcrumbsLevel

Override the maximum breadcrumbs level

NAV_EXPIRE_TIME

expireTime

Override the navigation expire time value

NAV_HIDDEN_FIELD

hiddenField

Override the navhidden field value

NAV_SORTORDER_FIELD

sortOrderField

Override the sort order field value

PORTAL_API_KEY

portalAPIKey

Deprecated, use PORTAL_SEC_API_KEY instead

PORTAL_EVENT_POOL_SIZE

eventPoolSize

Override the Vert.x event loop pool size

PORTAL_SECURITY_ENCRYPTION_MODE

encryptionMode

Override the encryption mode.

PORTAL_SECURITY_ENCRYPTION_PASSWORD

encryptionPassword

Override the encryption password

PORTAL_SEC_ALLOWED_IPS

allowedIps

Override the list of allowed IPs to access backend API endpoints

PORTAL_SEC_API_KEY

apiKey

Override the API key

PORTAL_SEC_COOKIE_HOST_PREFIX

useHostCookiePrefix

Override whether secure cookies will be prefixed with "__Host-"

PORTAL_WORKER_POOL_SIZE

workerPoolSize

Override the Vert.x worker pool size

QUERY_PATH

queryPath

Override the server query path.

REMOTE_LICENSE_RETRIEVAL_BYPASS

remoteLicenseRetrievalBypass

Override the remote license retrieval bypass.

SERVER_HOST

serverHost

Override the host IP address to bind to.

SERVER_PORT

serverPort

Override the server port.

SERVER_URL

serverUrl

Override the server url.

STATIC_CACHING

caching

Override caching of static files.

STATIC_MAX_AGE

maxAge

Override max age (in seconds) for static files.

STATIC_PATH

staticPath

Override the server static path.

STATIC_PATH

path

Override the server static path.

TEMPLATES_PATH

templatesPath

Override the server templates path.

TEMPLATES_TOLERATE_ERRORS

templatesTolerateErrors

Override the templating strict mode.

Custom options

There are two possibilities to provide project specific settings for a portal: loading a custom configuration file, or configuring a custom options map in the server.yml.

Custom configuration file

To avoid polluting the server configuration, this is the recommended way to load project specific settings.

  1. Create a custom configuration class which extends com.gentics.mesh.portal.api.Config (assume it is called ProjectConfig)

  2. Create a YAML file corresponding to your ProjectConfig and place it in the config directory of the portal (assume the file is called project.yml)

  3. Load the custom configuration by calling ConfigUtil#loadConfig() which will return an instance of ProjectConfig with the settings from project.yml.

  4. Optionally call loadConfig() again, with a local override file

Example for loading project specific configuration
// Load base configuration.
ProjectConfig config = ConfigUtil.loadConfig("project.yml", null, ProjectConfig.class);

// Load local overrides.
config = ConfigUtil.loadConfig("project.local.yml", config, ProjectConfig.class);

When the project specific configuration is very simple it might also suffice to use ConfigUtil#loadJson(String filename) to load a JSON file into a Vert.x JsonObject.

Custom options map

Note that using a custom options map is not recommended.

The configMap can hold a custom class with the specified values.

Variable Type Default value Description

customConfigMap.configMap

Map<String, Object>

Map of custom configuration options.

The following configuration will result in an entry customConfig of type CustomConfig where the String field setting1 has the value "value1":

customConfigMap:
  configMap:
    key1:  !&lt;com.gentics.mesh.portal.config.CustomConfig&gt;
      setting1: "value1"

Default configuration

This is the complete default configuration.

Using this file as is will not work, because the Mesh and Portal API keys, as well as the Mesh project and the server URL are missing.
Default server.yml
---
portalAPIKey: "0392308b198e4da783191c2a16f10bf8"
meshProject: "demo"
serverUrl: "https://demo"
serverPort: 3000
serverHost: "0.0.0.0"
templatesPath: "data/templates"
templatesTolerateErrors: true
queryPath: "data/queries"
i18nPath: "data/i18n"
breadcrumbsLevel: 0
startPage: ""
cookieHintPage: ""
autoDeleteUploads: false
uploadDir: "data/uploads"
licenseKeyPath: "license.key"
remoteLicenseRetrievalBypass: false
defaultLanguage: "en"
networkTimeout: 30
additionalResponseHeaders: {}
checkedQueries: []
mesh:
  host: "localhost"
  port: 8080
  protocolVersion: "DEFAULT"
  monitoringPort: 8081
  ssl: false
  apiKey: "ce83d576e2d24b009c07306baeaeeb35"
  requiredPlugins: []
  networkTimeout: 30
  proxyHeaderWhitelist:
  - "Authorization"
  - "Cookie"
  - "Accept"
  - "Content-Encoding"
  - "Accept-Encoding"
  - "Content-Length"
  - "Content-Type"
  maxRequests: 64
  maxRequestsPerHost: 64
  writeQueueMaxSize: 8192
  cookieForwardWhitelist:
  - "forms-voted"
  - "forms-data"
  authenticationMode: "BOTH"
  webrootFieldAvailable: false
  eventbus:
    pingInterval: 100
    retryTimeout: 5000
vertx:
  workerPoolSize: 20
  eventPoolSize: 40
  developmentMode: false
dataProvider:
  refreshTime: 60
  preventStartupOnError: false
  retryOnError: true
  meshData: {}
  webData: {}
mail:
  hostname: "localhost"
  port: 25
  ssl: false
  trustAll: false
  maxPoolSize: 10
  keepAlive: true
redirects:
  statusPages: {}
security:
  allowedIps: []
  additionalResponseHeaders: {}
  useHostCookiePrefix: false
  encryptCookies: false
  encryptionMode: "DISABLED"
  cookieSameSitePolicy: "STRICT"
authentication:
  loginEndpoint: "/auth/login"
  logoutEndpoint: "/auth/logout"
  insecureSsl: false
  logoutRedirect: "/"
  redirectCookieMaxAge: -1
  useUnauthorizedRedirect: false
  redirectCookieSameSiteStrict: true
  useSessionCookies: false
  maxTemporaryEntries: 0
  protectedEndpoints: []
  keycloak:
    callbackPath: "/auth/callback"
    rpInitiatedLogout: false
    retryPeriodSeconds: 60
  singleSignOut:
    externalPortals: []
    singleSignOutPath: "/auth/logoutAll"
  loginRedirect:
    path: "/auth/loggedin"
    defaultRedirect: "/"
    cmsPage: false
proxy:
  active: false
customConfigMap:
  configMap: {}
static:
  path: "data/static"
  caching: false
  maxAge: 86400
navigation:
  breadcrumbsLevel: 0
  sortOrderField: "navsortorder"
  hiddenField: "navhidden"
  expireTime: 15
caching:
  enabled: true
  maximumSize: 256
  expireTime: 60
  customParameters: []
  diskCacheConfig: "config/cache.ccf"
  diskCacheRegionName: "content"
  binaryMaxAge: 86400
monitoring:
  enabled: false
  ignoreMeshReady: true
  jmxEnabled: false
  port: 3001
  host: "127.0.0.1"
  conservativePortalState: false
  maxTimeouts: 10
  startupCheckMode: "ABORT"
  livePath: "gpj.live"
  liveUpdateInterval: 10
compatibility:
  preview: false
  mapNodeResponse: true
search:
  enabled: false
  template: "searchresults"
  endpoint: "/search"
  querySize: 8
  paginationMaxPages: 6
  paginationPrevious: "<"
  paginationEllipsis: "..."
  paginationNext: ">"