CONTENT_PALETTE_HIDDEN_CONTENT_TYPES=Host,Vanityurl,Languagevariable,persona,forms

EMAIL_SYSTEM_ADDRESS = website@dotcms.com
##	EMAIL INFORMATION
EMAIL_SENDING_THREADS = 10

##	LANGUAGE AND CODING INFO
CHARSET = text/html;charset=UTF-8
DEFAULT_LANGUAGE_COUNTRY = United States
DEFAULT_LANGUAGE = en_US
DEFAULT_LANGUAGE_CODE = en
DEFAULT_LANGUAGE_STR = English
DEFAULT_LANGUAGE_COUNTRY_CODE = US

##	if this variable is set true and the contentlet you are looking is not in the language you are on,
##	this will show the contentlet in the default language (Fallback to the default language). If is set to false
##	this additional search is avoided
DEFAULT_CONTENT_TO_DEFAULT_LANGUAGE=false

## it is similar to DEFAULT_CONTENT_TO_DEFAULT_LANGUAGE but only applies to Widgets
DEFAULT_WIDGET_TO_DEFAULT_LANGUAGE=true

## it is similar to DEFAULT_CONTENT_TO_DEFAULT_LANGUAGE but only applies to Pages
DEFAULT_PAGE_TO_DEFAULT_LANGUAGE=true

## it is similar to DEFAULT_CONTENT_TO_DEFAULT_LANGUAGE but only applies to Files
DEFAULT_FILE_TO_DEFAULT_LANGUAGE = true

## it is similar to DEFAULT_CONTENT_TO_DEFAULT_LANGUAGE but only applies to Persona
DEFAULT_PERSONA_TO_DEFAULT_LANGUAGE = true

PER_PAGE = 40

##	in minutes
LANGUAGES_REFRESH_INTERVAL=5

##	PATHS
CMS_STRUTS_PATH = /dotCMS/
PATH_TO_REDIRECT = /redirectURL
PATH_TO_IMAGES = /images

##	To set the report path you can specific a relative path normally like /reports The path is relative to the asset path.
##	If you set the ASSETS_REAL_PATH variable usually because you have the assets on a shared windows path make the REPORT_PATH = a directory name
##	For example REPORT_PATH=myReports  this will put a directory under your REAL_ASSETS_PATH with the reports in it.
REPORT_PATH=/reports
ASSET_PATH = /assets

##	This variable should be used only if the assets and reports are located in a
##	shared folder in unix/linux enviroments we encourage you to use symbolic links
##	If this variable is commented the system will work as usual using
##	the ASSET_PATH variable as the assets directory inside liferay web root
#ASSET_REAL_PATH = \\\\server01\\dotdata\\users\\david\\assets

##	This variable should be used if the dynamic content is to be placed outside of the web application.  By the default, the location
##	is in dotCMS/dotsecure.  If running as war inside an application server, it is important to move this data to a location
##	outside of the web application, to prevent data such as the cache and the index from being deleted if the war is redeployed.
#DYNAMIC_CONTENT_PATH=\\dotcms\\dotsecure

##	REDIRECT_TO_LOGIN = /dotCMS/login   <---- add a redirect to the /portal/401.jsp instead.
EMAIL_BACKUPS = /email_backups
DEFAULT_REFERER = /index.jsp

VERSION_FILE_PREFIX = /dotVersion
SAVED_UPLOAD_FILES_PATH = /uploaded_files


##	This controls when content can be added to pages, if set true then the user will only
##	required add children permissions to add content to a page if set to false then the
##	adding to a page can be controlled at container level and the user will required add
##	children permission over the page but also view permissions over the container
SIMPLE_PAGE_CONTENT_PERMISSIONING=true

##	 CMS ROLES
##	 to create these automatically at
##	 startup, add them to the portal-ext.properties
HIDE_CMS_ROLES = false



##	This will write out the generated velocity files under /dotsecure/velocity
SHOW_VELOCITYFILES=false

##	This will log the name of a template before parsing it
LOG_VELOCITY_TEMPLATES=false

VELOCITY_PAGE_EXTENSION = html
VELOCITY_ROOT = /WEB-INF/velocity

CONTENTLET_OTHER_TEXT = false
CATEGORY_TEMPLATE_NAME = Category Template
METADATA_DEFAULT =

##	Basic Task executors params delays in seconds
EXEC_NUM_OF_THREAD=10
EXEC_INIT_DELAY=60

##	Content review periodic task
EXEC_CONTENT_REVIEW_DELAY=300

##	every 5 minutes
CONTENT_REVIEW_THREAD_CRON_EXPRESSION=0 0/5 * * * ?
ENABLE_CONTENT_REVIEW_THREAD=false

##	Content Reindexation periodic Task (in seconds)
EXEC_CONTENT_REINDEXATION_DELAY=86400
EXEC_CONTENT_REINDEXATION_INIT_DELAY=86400
ENABLE_CONTENT_REINDEXATION_THREAD=false


##	UsersToDeleteThread
ENABLE_USERS_TO_DELETE_THREAD=false
USERS_TO_DELETE_THREAD_INIT_DELAY=60

##	every day
USERS_TO_DELETE_THREAD_CRON_EXPRESSION=1 1 1 * * ?

##	To turn off the job comment out the cron expression.  If set the job will try to start
TRASH_CLEANUP_JOB_CRON_EXPRESSION=0 0 0/1 * * ?
WEBDAV_CLEANUP_JOB_CRON_EXPRESSION=0 0 12 * * ?
WEBDAV_CLEANUP_FILE_LIFE_HOURS=12

##	http://jira.dotmarketing.net/browse/DOTCMS-1073
BINARY_CLEANUP_JOB_CRON_EXPRESSION=0 0 12 * * ?
BINARY_CLEANUP_FILE_LIFE_HOURS=12


##	Content
CONTENT_CHANGE_NOTIFICATIONS=false

## 	WYSIWYG_CSS (defaults to /html/css/tiny_mce.css)
## 	Full path to the WYSIWYG css
#WYSIWYG_CSS=/global/css/base.css
##
##   or
##
#WYSIWYG_CSS=//myhost.dotcms.com/global/css/base.css

## Update WYSIWYG image pattern
WYSIWYG_IMAGE_URL_PATTERN=/dA/{shortyId}/{name}?language_id={languageId}


##	UploadFileMaxSize
UPLOAD_FILE_MAX_SIZE=10737418240

##	LANGUAGE AND CODING INFO
DEFAULT_COUNTRY_CODE = United States of America

##	USERMANAGER ROW PER PAGE
USERMANAGER_PER_PAGE=50


##	Turns clickstream tracking on/off
ENABLE_CLICKSTREAM_TRACKING=false

##	CLICKSTREAM_SAVE_INTERVAL (This variable controls the number of second the cms will wait
##	to save a clickstream to the database,
##	if not set the clickstream will get saved when the session dies)
CLICKSTREAM_SAVE_INTERVAL = 5

##	Turns delete clickstream tracking on/off
ENABLE_DELETE_OLDER_CLICKSTREAMS=false


## If a clickstream has fewer request than this, they will not be persisted to db
MIN_CLICKSTREAM_REQUESTS_TO_SAVE=2


## takes a property that specifies how many days of clickstream data to keep.
DELETE_CLICKSTREAMS_OLDER_THAN=3

## cron expression to trigger Once a day (at 3:00 am)
DELETE_OLDER_CLICKSTREAMS_CRON_EXPRESSION=0 0 3 * * ?


##	dotcms User Alerts
PENDING_ALERTS_EXPIRATION_DAYS=10
SEEN_ALERTS_EXPIRATION_DAYS=*
MAX_ITEMS_MINIMIZED_VIEW=3



##	path to dojo version
path.to.dojo=/html/js/dojo/custom-build

##	If the URLMap pattern matches, but no matching content is found,
##	you can use FALLTHROUGH to try to find a matching page/folder in the CMS
URLMAP_FALLTHROUGH=true


##	Use this option when you have created a dotcms mailing list to be use on frontend create account action subscribe mailing list
##	if no value is set by default is use the subscribeDotCMSMailingList
#CREATE_ACCOUNT_MAILING_LIST=Test 01

##	User session management
KEEP_SESSION_ALIVE = true


##	LDAP FrontEnd Configuration
LDAP_FRONTEND_AUTH_IMPLEMENTATION=com.dotcms.enterprise.LDAPProxy

##	Frontend Cas filter
FRONTEND_CAS_FILTER_ON=false

##	GOOGLE Maps KEY
GOOGLE_MAPS_KEY=

##	Path used within the cms tree to upload files when
##	submitting new events files
CALENDAR_FILES_PATH=/calendar/files/

##	startup options
##	will only happen on first time start of dotcms.  Set to true to have the starter site load.
STARTERSITE_BUILD=true

##	To use a different starter the the starter.zip file set STARTER_DATA_LOAD to a relative path from the web root
##	which is the dotCMS directory.  If you place you zip in the static_files directory of the plugin
##	it would deploy to /html/plugin.name/my_starter.zip
#STARTER_DATA_LOAD=/html/plugin.name/my_starter.zip

##	Fix Assets and incosistencies
RUN_FIX_INCONSISTENCIES_ON_STARTUP=false

##
##	http://jira.dotmarketing.net/browse/DOTCMS-2273
##	In milliseconds.  A 0 value will disable
CONTENT_AUTOSAVE_INTERVAL=0

##	Binary field exporters
##	can be used/extended to transform binary field content
CONTENT_EXPORTERS_DOTCMS_CORE=com.dotmarketing.portlets.contentlet.business.exporter.ImageResizeFieldExporter,com.dotmarketing.portlets.contentlet.business.exporter.RawFieldExporter,com.dotmarketing.portlets.contentlet.business.exporter.ImageFilterExporter,com.dotmarketing.portlets.contentlet.business.exporter.ImageThumbnailFieldExporter

##	RESIZE - THUMBNAILS - Default values
DEFAULT_HEIGHT=100
DEFAULT_WIDTH=100
DEFAULT_BG_R_COLOR=255
DEFAULT_BG_G_COLOR=255
DEFAULT_BG_B_COLOR=255
DEFAULT_IMAGE_TYPE=java.awt.image.BufferedImage.TYPE_INT_RGB
DEFAULT_KEY_INTERPOLATION=java.awt.RenderingHints.VALUE_INTERPOLATION_BICUBIC
DEFAULT_KEY_RENDERING=java.awt.RenderingHints.VALUE_RENDER_QUALITY
DEFAULT_KEY_ANTIALIASING=java.awt.RenderingHints.VALUE_ANTIALIAS_ON
DEFAULT_KEY_COLOR_RENDERING=java.awt.RenderingHints.VALUE_COLOR_RENDER_QUALITY
DEFAULT_KEY_ALPHA_INTERPOLATION=java.awt.RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY

##	This option allows to point the TinyMCE config to a different jsp.
##	This is mostly useful for  plugins that customize the TinyMCE
#TINY_MCE_CONFIG_LOCATION=html/plugins/myplugin/tiny_mce_config.jsp;

##	SCRIPTING CONGIG
ENABLE_SCRIPTING=false

##	SITE SEARCH CONFIG
SEARCH_AGENT_NAME   = dotcms
SEARCH_AGENT_DESC   = dotcms site search
SEARCH_AGENT_URL    = www.dotcms.com
SEARCH_AGENT_EMAIL  = test@dotcms.com

##	determines the number of threads that will fetch in parallel.
NUMBER_OF_THREADS   = 10

##	indicates the link depth from the root page thaIt should be crawled.
LINK_DEPTH          = 20

##	determines the maximum number of pages that will be retrieved at each level up to the depth.(Leave 0 for max)
MAX_PAGES_PER_LEVEL = 0

##	LOGGING/PROFILING CONTROLS
VELOCITY_PROFILING=false

##	1.9.3.1 Additions --------------------------------------------------------------------------
##	Set the folder and pattern for logfiles to display
## Can be set to a path relative to the WAR or an Absolute Path
## NOTE: Changing this property will not alter the place where the log folder is placed.
TAIL_LOG_LOG_FOLDER=./dotsecure/logs/

##	REGEX log has to match to be showable.
##	set to !.* to prevent any file from showing
TAIL_LOG_FILE_REGEX=.*\.log$|.*\.out$


##	2.0 Additions --------------------------------------------------------------------------

##	Tika-Parser conf
CONTENT_PARSERS_MIMETYPES=application/pdf
CONTENT_PARSERS=com.dotcms.repackage.org.apache.tika.parser.pdf.PDFParser

## when processing large text files as PDF the uncompressed text is read
## is written to asset directory to avoid heap space errors.
## this option allows to compress that text on disk using "gzip", "bzip2" or "none".
## if this property is missing gzip is used.
## if an invalid value is provided then compression is disabled
#CONTENT_METADATA_COMPRESSOR=gzip

## metadata up to this size will be indexed (in MB)
META_DATA_MAX_SIZE=5


## this is a comma separated list that will limit the file asset metadata values
## that get placed in the content index
INDEX_METADATA_FIELDS=width,height,contentType,author,keywords,fileSize,content,length,title


## CONTENT_APIS_ALLOW_ANONYMOUS controls what level of access
## to grant ANONYMOUS (not logged in) visitors to dotCMS Content apis
## This property is only respected by a few APIs, specifically the APIs that have to do with
## mananging content in the dotCMS content store.
##
## For anonymous content submittal to work (form builder, contentAPI)
## this needs to be set to WRITE, otherwise
## users will need to authenticate before subitting content
##
## Possible values are NONE | READ | WRITE
CONTENT_APIS_ALLOW_ANONYMOUS=READ

## Temp Resource File Uploads
##
## This property controls the max allowed
## file uploads using the TempFileResouce API, which is used
## in the UI and form builder by the binary fields.
## There are two properties, one for authenticated users
## and one for anonymous users.  Anonymous users will be limited
## to whichever value is smaller
##
## These values are in bytes , so a 100kb file
## would be 102400.  -1 means unlimited

## disallow anonymous access by default
TEMP_RESOURCE_ALLOW_ANONYMOUS=false


## authenticated users are unlimited
TEMP_RESOURCE_MAX_FILE_SIZE=-1



## limit Anonymous users to 1MB
TEMP_RESOURCE_MAX_FILE_SIZE_ANONYMOUS=1048576




## Force SSL on all REST calls (.his is an old property and may not work with proxies unless you have set tomcat up correctly
## and anyway - all requests to your server should be forced to SSL, right?
FORCE_SSL_ON_RESP_API=false




##TAGS
#When true accrues the tags found in the associated Contentlet to the URL Map
ACCRUE_TAGS_IN_URLMAPS=true
#When true accrues the tags found in the visited HTMLPage Contentlet
ACCRUE_TAGS_IN_PAGES=true
#When true accrues the tags found on each of the contentlets living inside the visited HTMLPage Contentlet
ACCRUE_TAGS_IN_CONTENTS_ON_PAGE=false
##TAGS

PULLPERSONALIZED_PERSONA_WEIGHT=100



## Comma separated list of
## custom workflow actionlets, e.g.
#WORKFLOW_ACTIONLET_CLASSES=com.dotcms.publisher.business.PublisherAddActionlet

## ESURLEndPoint


##################### dotCMS PUB/SUB #####################
## If you want to use a custom DOT_PUBSUB_PROVIDER, you can set the the DOT_PUBSUB_PROVIDER_OVERRIDE
## to the class you would like to use.  By default we use the com.dotcms.dotpubsub.PostgresPubSubImpl
#DOT_PUBSUB_PROVIDER_OVERRIDE=com.dotcms.dotpubsub.PostgresPubSubImpl

## Setting this to true will send all PUB/SUB messages async, through an async queuing mechanism
## Setting this to false will send all PUB/SUB messages sync through the pub/sub system of your choice
#DOT_PUBSUB_USE_QUEUE=true

## If you want to dedupe messages in your PUB/SUB queue before sending them, and if you want to log this deduplication effort
#DOT_PUBSUB_QUEUE_DEDUPE=true
#DOT_PUBSUB_QUEUE_DEDUPE_LOG=false



#Setting for the Cache-Control on files served to the browser. Controls the header setting
asset.cache.control.max.days=30

##################### dotCMS Cache Configuration #####################
cache.default.chain			    =com.dotmarketing.business.cache.provider.caffine.CaffineCache
cache.contentletcache.chain     =com.dotmarketing.business.cache.provider.caffine.CaffineCache,com.dotmarketing.business.cache.provider.h22.H22Cache
cache.vanityurlcache.chain      =com.dotmarketing.business.cache.provider.timedcache.TimedCacheProvider
cache.cachedvanityurlgroup.chain=com.dotmarketing.business.cache.provider.timedcache.TimedCacheProvider

## If you cache the velocity templates to disk, you should also cache
## the velocity macros to disk, otherwise, they might not reload on restarts.
cache.velocitycache.chain   =com.dotmarketing.business.cache.provider.caffine.CaffineCache,com.dotmarketing.business.cache.provider.h22.H22Cache
cache.velocitymacrocache.chain   =com.dotmarketing.business.cache.provider.caffine.CaffineCache,com.dotmarketing.business.cache.provider.h22.H22Cache

## Cache API Token lookups for a hour (invalidations still apply)
cache.apitokencache.chain=com.dotmarketing.business.cache.provider.timedcache.TimedCacheProvider
cache.apitokencache.seconds=3600

## Cache Elasticsearch Queries for an hour - this cache gets in validated whenever a contentlet is checked in
cache.esquerycache.chain=com.dotmarketing.business.cache.provider.timedcache.TimedCacheProvider
cache.esquerycache.seconds=3600
cache.esquerycache.size=10000

## Cache Elasticsearch Queries for an hour - this cache gets in validated whenever a contentlet is checked in
cache.esquerycountcache.chain=com.dotmarketing.business.cache.provider.timedcache.TimedCacheProvider
cache.esquerycountcache.seconds=3600
cache.esquerycountcache.size=10000

## Cache Graphql Queries
cache.graphqlquerycache.chain=com.dotmarketing.business.cache.provider.caffine.CaffineCache
cache.graphqlquerycache.seconds=15
cache.graphqlquerycache.size=5000

#cache.default.chain=com.dotmarketing.business.cache.provider.hazelcast.HazelcastCacheProviderEmbedded
#cache.default.chain=com.dotmarketing.business.cache.provider.hazelcast.HazelcastCacheProviderClient

## The cache transport wires a dotcms cluster together.  If you are running Postgresql, dotCMS will automatically use the PubSubCacheTransport
## as the default CacheTransport. If you are NOT running Postgresql, dotCMS will fall back to use the HazelcastCacheTransportEmbedded
## You can override the cache transport by changing the config variable CACHE_INVALIDATION_TRANSPORT_CLASS

#CACHE_INVALIDATION_TRANSPORT_CLASS=com.dotcms.cache.transport.PubSubCacheTransport
#CACHE_INVALIDATION_TRANSPORT_CLASS=com.dotcms.cache.transport.HazelcastCacheTransportEmbedded

## Cache elasticsearch query results
ES_CACHE_SEARCH_QUERIES=true

## Default Caching Settings
cache.default.size=1000

## Region Specific Guava cache setting Settings
cache.concurrencylevel=32
cache.adminconfigpool.size=100
cache.companypool.size=10
cache.contentletcache.size=5000
cache.categoryparentscache.size=30000
cache.taginodecache.size=50000
cache.taginodesbyinodecache.size=50000
cache.tagcache.size=50000
cache.csscache.size=2500
cache.assetmetadatacache.size=10000
cache.identifiercache.size=50000
cache.identifier404cache.size=30000
cache.indiciescache.size=8
cache.logmappercache.size=10
cache.navcache.size=1000
cache.parentpermissionablecache.size=10000
cache.permissioncache.size=50000
cache.portletpool.size=100
cache.publishingendpointcache.size=100
cache.pushedassetscache.size=5000
cache.templatecache.size=500
cache.translatedquerycache.size=5000
cache.versioncache.size=50000
cache.versioninfocache.size=50000
cache.workflowactioncache.size=10000
cache.workflowtaskcache.size=10000
cache.shortyidcache.size=25000
cache.identifier404cache.size=5000
cache.velocitycache.size=5000
cache.vanityurldirectcache.size=25000
cache.vanityurlsitecache.size=5000



#Available cache regions
#cache.actionscache.size=1000
#cache.blockdirectivecache.size=1000
#cache.blockdirectivehtmlpagecache.size=1000
#cache.categorybykeycache.size=1000
#cache.categorycache.size=1000
#cache.categorychildrencache.size=1000
#cache.categoryparentscache.size=1000
#cache.conditionscache.size=1000
#cache.conditionsgroupconditionscache.size=1000
#cache.conditionsgroupscache.size=1000
#cache.containercache.size=1000
#cache.containerstructurecache.size=1000
#cache.dotcmslayoutcache.size=1000
#cache.dotcmsrolecache.size=1000
#cache.dotcmsrolekeycache.size=1000
#cache.dotcmsrootrolescache.size=1000
#cache.dotcmsuserrolecache.size=1000
#cache.foldercache.size=1000
#cache.hostaliascache.size=1000
#cache.hostcache.size=1000
#cache.hostrulescache.size=1000
#cache.hostvariablescache.size=1000
#cache.htmlpagecache.size=1000
#cache.identifier404cache.size=1000
#cache.languagecacheimpl.size=1000
#cache.newnotificationcache.size=1000
#cache.plugincache.size=1000
#cache.propertycache.size=1000
#cache.relationshipcachebyinode.size=1000
#cache.relationshipcachebyname.size=1000
#cache.ruleactionscache.size=1000
#cache.ruleconditiongroupscache.size=1000
#cache.ruleconditionletsitevisitscache.size=1000
#cache.rulescache.size=1000
#cache.structuresbytypecache.size=1000
#cache.tagsbyinodecache.size=1000
#cache.userdotcmscache.size=1000
#cache.useremaildotcmscache.size=1000
#cache.userproxycache.size=1000
#cache.velocitycache.size=1000
#cache.workflowcache.size=1000
#cache.workflowstepcache.size=1000


##	Disk cache settings (local java db)
##  defaults if not set CACHE_DB_MAX_CONN=600, CACHE_DB_MAX_IDLE=100, CACHE_DB_MIN_IDLE=50
#CACHE_DB_MAX_CONN=600
#CACHE_DB_MAX_IDLE=100
#CACHE_DB_MIN_IDLE=50

##################### dotCMS Cache Configuration #####################

## This is a comma separated list of plugins css files to include the css code for backend plugins portlets
#BACKEND_PLUGINS_CSS_PATHS=/html/plugins/myplugin/css/myplugin.css

##	QUARTZ SETTINGS
##	This is used if you need to override the Quartz driver. We have seen cases where WebLogic needs to do this with Oracle. You can safely leave commented if you are not having issues.
#QUARTZ_DRIVER_CLASS=org.quartz.impl.jdbcjobstore.oracle.weblogic.WebLogicOracleDelegate

## FELIX CONFIGURATION

#felix.gosh.args=--noi
felix.felix.auto.deploy.action=install,start
felix.felix.fileinstall.log.level=3
felix.felix.org.osgi.framework.startlevel.beginning=2
felix.felix.org.osgi.framework.storage.clean=onFirstInit
felix.felix.log.level=3
felix.felix.cache.locking=false

#
# Bundle config properties.
#
#felix.org.apache.felix.http.jettyEnabled=true
#felix.org.osgi.service.http.port=8080
#felix.osgi.shell.telnet=on

## ESCALATION CONFIGURATION
ESCALATION_ENABLE=true
ESCALATION_CHECK_INTERVAL_CRON=0/30 * * * * ?

##	These lines should be last to allow plugins to override values - touche pas!
## BEGIN PLUGINS
## END PLUGINS


######################################
##
##	Alberto - Publisher queue job
######################################
ENABLE_PUBLISHER_QUEUE_THREAD=true
PUBLISHER_QUEUE_MAX_TRIES=3

##	every minute
PUBLISHER_QUEUE_THREAD_CRON_EXPRESSION=0 0/1 * * * ?

#Allow publish tool to export/import structures (false/true)
PUSH_PUBLISHING_PUSH_STRUCTURES=true
#Allow publish tool to export/import all pages in an exported folder
#not only pages linked in the multitree table
PUSH_PUBLISHING_PUSH_ALL_FOLDER_PAGES=false

#ID of the user whom workflow action next assign will be set to IF the received user role does NOT exist on this side
PUSH_PUBLISHING_WORKFLOW_ACTION_NEXT_ASSIGN_DEFAULT_USER=dotcms.org.1

# If true, the Rules coming from pushing a Site (Host) or a Content Page will overwrite the existing Rules in the destination
# end point (i.e., deleting the existing Rules and adding the ones in the pushed bundle). Otherwise, existing Rules will be
# left as they are (or updated if required), and new rules will be added
PUSH_PUBLISHING_RULES_OVERWRITE=false

## BEGIN
## https://github.com/dotCMS/dotCMS/issues/2671
## insert page limit for search result
PUSH_PUBLISHING_PAGE_LIMIT=25
## END

##
## how to create a truststore/keystore:
## where myorg.crt is your secure certificate
##
## keytool -import -alias myorg -file myorg.crt -keystore trust.ks
##
## TrustStore (Includes the Remote Server SSL Key)
#TRUSTSTORE_PATH=/home/xxxx/xxxxx/trust.ks
#TRUSTSTORE_PWD=password

## Keystore (Only needed if two way SSL authentication is required.  This is sending server's client key)
#KEYSTORE_PATH=/home/xxxx/xxxxx/keystore.ks
#KEYSTORE_PWD=password

#########################################
## End publisher config
#########################################

# COOKIES

## In order to set the httpOnly flag of the JSESSIONID cookie, you need to add the attribute useHttpOnly="true"
## to the Context tag of the tomcat/conf/context.xml. If using different app servers/containers you can consult their documentation.
## For reference see https://www.owasp.org/index.php/HttpOnly
COOKIES_HTTP_ONLY=true
# values: never|always|https
COOKIES_SECURE_FLAG=https
COOKIES_SESSION_COOKIE_FLAGS_MODIFIABLE=true

########################################
## CMS MAINTENANCE - Assets Search and Replace
########################################

##Maximum Number of file assets to search at once
ASSETS_SEARCH_AND_REPLACE_MAX_NUMBER_OF_ASSET_TO_SEARCH=100

##Allowed File assets
ASSETS_SEARCH_AND_REPLACE_ALLOWED_FILE_TYPES=vtl,css,js,txt,html,htm,xml,php
## run link checker every 2 hours
linkchecker.enablejob=false
linkchecker.enable_email_notification=false
linkchecker.cronexp=0 0 0/2 * * ?

## Use hardlinks when copying files, versioning content and creating snapshots
CONTENT_VERSION_HARD_LINK=true

## Prevent the uploading and management of 0 length (possibly corrupt?) files
CONTENT_ALLOW_ZERO_LENGTH_FILES=true



## Default cache for pages
DEFAULT_PAGE_CACHE_SECONDS=3600

## do permission check on menu items for every request
ENABLE_NAV_PERMISSION_CHECK=false

## substitute utf chars on text with html entities for content. e.g., � -> $aacute; � -> &ntilde; ...
## CURRENTLY this only affects the import tool and default tinymce config
CONTENT_ESCAPE_HTML_TEXT=true

## SAVE LOG MESSAGES ON DOTCMS-USERACTIVITY LOG
#save_log_info_useractivity_log=true
## SAVE LOG MESSAGES ON DOTCMS LOG
#save_log_info_dotcms_log=true

## ENABLE GETSQLRESULTS MACRO TO ACCESS DB WITH DEFAULT CONNECTION POOL
## THIS SHOULD BE SET 'FALSE' BY DEFAULT. FOR THIS, A CONNECTION POOL SHOULD BE ADDED
## IN YOUR ROOT.XML WITH LIMITED ACCESS TO DATABASE.
## ENABLING THIS TO TRUE WILL ALLOW ANY END USER TO RUN GETSQLRESULTS MACRO
## ENABLE_SCRIPTING VARIABLE SHOULD BE SET TO TRUE IN ORDER TO MAKE THIS MACRO TO WORK
ALLOW_VELOCITY_SQL_ACCESS_TO_DOTCMS_DB=false



##Disable External Referer
DISABLE_EXTERNAL_REFERERS=false

CMS_INDEX_PAGE = index


## GeoIP2 DB Path Override (absolute path) (defaults to :
## $TOMCAT_HOME/webapps/ROOT/WEB-INF/geoip2/GeoLite2-City.mmdb)
#GEOIP2_CITY_DATABASE_PATH_OVERRIDE=

## Rules engine maximun execution time in ms this property allow to find any rules that
## are running slower than expected, so we can manage the performance of the dotCMS server.
SLOW_RULE_LOG_MIN=100
## Actionlets
api.system.ruleengine.actionlet.VisitorTagsActionlet.MAX_TAGS=20

## Max Number of element to display in the rest pagination
DEFAULT_REST_PAGE_COUNT=20

##Static Push Bucket Name Restrictions
#STATIC_PUSH_BUCKET_NAME_REGEX=[,!:;&?$\\\\*\\/\\[\\]=\\|#_@\\(\\)<>\\s\\+"]+
STATIC_PUSH_SLEEP_ON_ERROR_SECONDS=10
STATIC_PUSH_RETRY_ATTEMPTS=3


# Allow HTTP Authentication
# THIS IS A SECURITY RISK FOR DEVELOPMENT ONLY, CHANGE THIS IN PRODUCTION ENVIRONMENTS
json.web.token.allowhttp=false

# Max "Remember Me" Token Age in Days
json.web.token.days.max.age=14

# Max Token Age Allowed in Days - for API requested tokens
json.web.token.max.allowed.expiration.days=3560


# If true:
# 1. The PublishDateUpdater class will use the System user to publish or expire content
#    that have a publish or expire date set instead of the current mod_user.
# 2. When pushing a content associated to a Workflow Task whose user/role is NOT in the
#    receiver end-point, the system will overwrite it to set the CMS Administrator role
#    for the push to work correctly as this role will always be present in any end-point.
HEADLESS_USER_CONTENT_DELIVERY=true

# If the vanity url doesnt exist in the current language the it will try to get it using
# the default language bef
DEFAULT_VANITY_URL_TO_DEFAULT_LANGUAGE=true


# Disable these if you are not using front end login/logout or the form builder
# Front End Account Actions
allow.legacy.com.dotmarketing.cms.login.action.logoutaction=true
#allow.legacy.com.dotmarketing.cms.myaccount.action.myaccountaction=true
allow.legacy.com.dotmarketing.cms.content.submit.action.submitcontentaction=true
allow.legacy.com.dotmarketing.cms.login.action.loginaction=true


## DELAY a failed login attempt by 2 seconds
auth.failedattempts.delay.strategy=TIME_MILLS:2000



# When enable the metadata files will be re-generated on reindex
# NOTE: Enabling this could affect greatly the performance of a reindex process.
always.regenerate.metadata.on.reindex=false

GDPR_CONSENT_DEFAULT_PROPERTY=true
WHITELISTED_HEADERS=User-Agent,Host,Accept-Language,Referer,
WHITELISTED_PARAMS=q,id,v,tag,persona,language_id,r,keyword,orderBy,gclid,ad
WHITELISTED_COOKIES=_ga,__atuvc,_gid,opvc,sitevisitscookie,__utmz,hubspotutk,gwcc,__utmz,__hstc,__utma,__utmc,


SYSTEM_STATUS_API_LOCAL_FS_TIMEOUT=1000
SYSTEM_STATUS_API_CACHE_TIMEOUT=1000
SYSTEM_STATUS_API_ASSET_FS_TIMEOUT=1000
SYSTEM_STATUS_API_INDEX_TIMEOUT=1000
SYSTEM_STATUS_API_DB_TIMEOUT=1000
SYSTEM_STATUS_API_IP_ACL=127.0.0.1/32,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,0:0:0:0:0:0:0:1


## Sets default cors headers for dotCMS APIs
## api.cors.default.xxxx:yyy
## will be sent by default as a header, e.g
## api.cors.default.access-control-allow-origin=*         --> Access-Control-Allow-Origin : *
## api.cors.default.access-control-max-age=*              --> Access-Control-Max-Age : 0
## api.cors.default.access-control-allow-credentials=true --> Access-Control-Allow-Credentials:true
api.cors.default.Access-Control-Allow-Origin=*
api.cors.default.Access-Control-Allow-Methods=GET, PUT, POST, DELETE, HEAD, OPTIONS, PATCH
api.cors.default.Access-Control-Allow-Credentials=true
api.cors.default.Access-Control-Allow-Headers=*
api.cors.default.Access-Control-Expose-Headers=*

## You can also set headers per resource by specifying the resource name (java class name lowercased), e.g. for the contentresource
# api.cors.contentresource.access-control-allow-origin=https://demo.dotcms.com
# api.cors.contentresource.access-control-allow-headers=Authorization, Accept, Content-Type, Cookies, Content-Type, Content-Length
# api.cors.contentresource.access-control-allow-methods=GET, HEAD, POST, PUT, DELETE, OPTIONS



## XSS PROTECTION FOR ADMIN SCREENS

# In order to minimize XSS and CSRF vunerabilities, dotCMS will block direct access to all files under the /html and /dotAdmin directories
# unless dotCMS is sent a valid referer (or Origin) header.  This is enabled by default but it can be turned off by this property:

# XSS_PROTECTION_ENABLED=false

# The paths (regexes) that are protected default to the list found here:
# https://github.com/dotCMS/core/blob/master/dotCMS/src/main/java/com/dotcms/filters/interceptor/dotcms/XSSPreventionWebInterceptor.java#L26
# and can be overridden if needed by this comma separate property:

# XSS_PROTECTED_PATHS=\\A/html/,\\A/c/,\\A/servlets/

# With XSS protection, dotCMS expects a valid referer or Origin header.  The Origin Header is checked first and if it is not present,
# dotCMS will fall back to the referer header.  For a request to be valid, one of the following must be true:

#    - The Origin/referer is the same host name as the request url (normally, this is the case)
#    - The Origin/referer header has a value equal to a site or alias defined in the site manager (not normal, but maybe)
#    - The Origin/referer header has a value equal to the "Portal Url" as defined on the Configuration Screen
#    - The request is for a *.css file (css @import statements do not set a referer)

# if none of these conditions are met and you have a case where you need to allow non-refered access to an administrative file or folder
# you can add uris and paths to ignore to IGNORE_REFERER_FOR_PATHS, as comma separated values.  dotCMS will ignore all matching uris or, if it ends with an astrick,
# then all uris that begin with the value, e.g.

# IGNORE_REFERER_FOR_PATHS=/html/common/css.jsp,/html/my-plugin/*


## WHERE TO READ/WRITE/CACHE GENERATED ASSETS
# DOTGENERATED_DEFAULT_PATH="shared|local" controls where dotCMS reads and writes generated images when doing transformations and can be set to either "shared" or "local".
# "shared", means that  transformed images will be written and read from the shared /assets/dotGenerated folder, which generally lives on an NFS mount.
# "local"  means the generated/transformed images will be written and read to the local, e.g. /dotSecure/dotGenerated folder.
DOTGENERATED_DEFAULT_PATH=shared


## Update the default number of available stripes
dotcms.concurrent.locks.stripes=1024

## DotConcurrency
# this updates the default queue capacity to Integer.max, which is default for any new queue
dotcms.concurrent.queuecapacity=2147483647

## Setup an initial password for the default admin user admin@dotcms.com
# Once the starter is loaded the admin user gets updated with a new  secure password of max 16 chars.
# The new admin default password is then printed on the log for user to know it.
# The following property can be used to override this behavior and set an specific initial password for the admin user
#INITIAL_ADMIN_PASSWORD=