###############################################################################
# Welcome to ERP5 / Zope 2.
###############################################################################
#
# This is the ERP5 / Zope configuration file, used as buildout template.
# Directive: instancehome
#
# Description:
# The path to the data files, local product files, import directory,
# and Extensions directory used by Zope.
instancehome ${instancehome}
# Directive: ip-address
#
# Description:
# The default IP address on which Zope's various server protocol
# implementations will listen for requests. If this is unset, Zope
# will listen on all IP addresses supported by the machine. This
# directive can be overridden on a per-server basis in the servers
# section.
ip-address ${ip-address}
# Directives: servers
#
# Description:
# A set of sections which allow the specification of Zope's various
# ZServer servers. 7 different server types may be defined:
# http-server, ftp-server, webdav-source-server, persistent-cgi,
# fast-cgi, monitor-server, and icp-server. If no servers are
# defined, the default servers are used.
#
# Ports may be specified using the 'address' directive either in simple
# form (80) or in complex form including hostname 127.0.0.1:80. If the
# hostname is "left off", the default-ip-address is used as the hostname.
#
# Port numbers are offset by the setting of port-base.
#
# To run the monitor-server an emergency user must be defined
# (through an 'access' file).
#
# Default:
#
# An HTTP server starts on port 8080.
# valid keys are "address" and "force-connection-close"
address ${http-address}
force-connection-close ${http-force-connection-close}
# TODO in clever way:
#
#
# # valid key is "address"
# address 8021
#
#
#
# # valid keys are "address" and "force-connection-close"
# address 1980
# force-connection-close off
#
#
#
# # valid key is "path"
# path somefile
#
#
#
# # valid key is "address"; the address may be hostname:port, port,
# # or a path for a Unix-domain socket
# address somefile
#
#
#
# # valid keys are "address"
# address 8099
#
#
#
# # valid key is "address"
# address 888
#
#
# Directive: clienthome
#
# Description:
# The directory in which a running Zope's process identifier files are
# placed.
clienthome ${clienthome}
# Directive: products
#
# Description:
# Name of a directory that contains additional Product packages. This
# directive may be used as many times as needed to add additional
# collections of products. Each directory identified will be
# added to the __path__ of the Products package. All Products are
# initialized in ascending alphabetical order by product name. If
# two products with the same name exist in two Products directories,
# the order in which the packages appear here defines the load
# order. The master Products directory exists in Zope's software home,
# and cannot be removed from the products path (and should not be added
# to it here).
# In profile use:
# ProductLocationX
# ProductLocationY
${products}
# Directives: port-base
#
# Description:
# Offset applied to the port numbers used for ZServer
# configurations. For example, if the http-server port is 8080 and
# the port-base is 1000, the HTTP server will listen on port 9080.
# This makes it easy to change the complete set of ports used by a
# Zope server process
port-base ${port-base}
# Directive: environment
#
# Description:
# A section which can be used to define arbitrary key-value pairs
# for use as environment variables during Zope's run cycle. It
# is not recommended to set system-related environment variables such as
# PYTHONPATH within this section.
# In profile use:
#
# VAR value
#
${environment}
# Directive: path
#
# Description:
# Name of a directory which should be inserted into the
# the beginning of Python's module search path. This directive
# may be specified as many times as needed to insert additional
# directories. The set of directories specified is inserted into the
# beginning of the module search path in the order which they are specified
# here. Note that the processing of this directive may happen too late
# under some circumstances; it is recommended that you use the PYTHONPATH
# environment variable if using this directive doesn't work for you.
path ${lib_path}
# Directive: debug-mode
#
# Description:
# A switch which controls several aspects of Zope operation useful for
# developing under Zope. When debug mode is on:
#
# - The process will not detach from the controlling terminal
#
# - Errors in product initialization will cause startup to fail
# (instead of writing error messages to the event log file).
#
# - Filesystem-based scripts such as skins, PageTemplateFiles, and
# DTMLFiles can be edited while the server is running and the server
# will detect these changes in real time. When this switch is
# off, you must restart the server to see the changes.
#
# Setting this to 'off' when Zope is in a production environment is
# encouraged, as it speeds execution (sometimes dramatically).
debug-mode ${debug-mode}
# Directive: effective-user
#
# Description:
# If you intend to run Zope as the "root" user, you must supply this
# directive with an effective username or userid number to which Zope
# will 'suid' after the server ports are bound. This directive only
# has effect under UNIX and if Zope is started as the root user.
effective-user ${effective-user}
# Directive: enable-product-installation
#
# Description:
# If this directive is turned on, Zope performs 'product installation'
# (the registration of Python modules in various Products directories)
# at startup. Turning this off can speed Zope/ZEO startup time,
# but it can also cause your Control_Panel Product list to become
# desynchronized with the contents of your Products
# directories. NOTE: Zope *must* be started at least once with
# this directive set to "on" or you will receive an error. If using ZEO,
# at least one ZEO client must be run with this directive set to "on"
# once, the others can have it turned off.
# NOTE: If your main storage is mounted read-only,
# you must set this directive to "off".
enable-product-installation ${enable-product-installation}
# Directive: locale
#
# Description:
# Enable locale (internationalization) support by supplying a locale
# name to be used. See your operating system documentation for locale
# information specific to your system. If your Python module does not
# support the locale module, or if the requested locale is not
# supported by your system, an error will be raised and Zope will not
# start.
locale ${locale}
# Directive: datetime-format
#
# Description:
# Set this variable either to "us" or "international" to force the
# DateTime module to parse date strings either with
# month-before-days-before-year ("us") or
# days-before-month-before-year ("international"). The default
# behaviour of DateTime (when this setting is left unset) is to
# parse dates as US dates.
datetime-format ${datetime-format}
# Directive: zserver-threads
#
# Description:
# Specify the number of threads that Zope's ZServer web server will use
# to service requests. The default is 4.
zserver-threads ${zserver-threads}
# Directive: python-check-interval
#
# Description:
# Specify an integer representing the Python interpreter "check
# interval" This interval determines how often the interpreter checks
# for periodic things such as thread switches and signal handlers. The
# Zope default is 500, but you may want to experiment with other values
# in order to attempt to increae performance in your particular
# environment.
python-check-interval ${python-check-interval}
# Directive: zserver-read-only-mode
#
# Description:
# If this directive is set to 'on', it will cause Zope to inhibit the
# creation of log files and pid files. Access and event log files will
# be presented on standard output. Setting this directive 'on' causes
# pcgi, fastcgi, and daemon-related directives to have no effect.
zserver-read-only-mode ${zserver-read-only-mode}
# Directive: pid-filename
#
# Description:
# The path to the file in which the Zope process id(s) will be written.
# This defaults to client-home/Z2.pid.
pid-filename ${pid-filename}
# Directive: lock-filename
#
# Description:
# The path to a "lock file" which will be locked by Zope while it's
# running. This file is used by zopectl.py to determine if Zope is
# currently running. This defaults to CLIENT_HOME/Z2.lock.
lock-filename ${lock-filename}
# Directive: mime-types
#
# Description:
# Tells Zope about additional mime.types files that should be
# loaded. The files have the same format as the mime.types file
# distributed with Apache. The "mime-types" setting may be given
# more than once in the configuration file.
# In profile use:
# mime-types file1
# mime-types file2
${mime-types}
# Directive: structured-text-header-level
#
# Description:
# Set the default starting HTML header level for structured text
# documents. The default is 3, which implies that top-level headers
# will be created with an
tag.
structured-text-header-level ${structured-text-header-level}
# Directive: rest-input-encoding
#
# Description:
# Specifies the input encoding of re-StructuredText documents
# (e.g. 'utf-8', 'iso-8859-15' or any other valid encoding recognized
# by Python). The default is your Python's default encoding.
rest-input-encoding ${rest-input-encoding}
# Directive: rest-output-encoding
#
# Description:
# Specifies the output encoding of re-StructuredText documents
# (e.g. 'utf-8', 'iso-8859-15' or any other valid encoding recognized
# by Python). The default is your Python's default encoding.
rest-output-encoding ${rest-output-encoding}
# Directive: rest-header-level
#
# Description:
# Set the default starting HTML header level for restructured text
# documents. The default is 3, which implies that top-level headers
# will be created with an tag.
rest-header-level ${rest-header-level}
# Directive: rest-language-code
#
# Description:
# Language code used for some internal translations inside of the docutils
# package and for DTD bibliographic elements mapping. See
# lib/python/docutils/languages/ for a list of supported language codes.
rest-language-code ${rest-language-code}
# Directive: cgi-environment
#
# Description:
# A section which allows a user to define arbitrary key-value pairs for
# use as the initial CGI environment variables. This is useful
# when you want to proxy requests from another web server to Zserver,
# and would like Zserver's CGI environment to reflect the CGI
# environment of the other web server.
# In profile set:
#
#
# HTTPS_SERVER Foobar Server 1.0
# HTTPS_PORT 443
#
${cgi-environment}
# Directive: dns-server
#
# Description:
# Specify the IP address of your DNS server in order to cause resolved
# hostnames to be written to Zope's access log. By default, Zope will
# not resolve hostnames unless this is set.
dns-server ${dns-server}
# Directive: http-realm
#
# Description:
# The HTTP "Realm" header value sent by this Zope instance. This value
# often shows up in basic authentication dialogs.
http-realm ${http-realm}
# Directive: cgi-maxlen
#
# Description:
# Set this value to limit the amount of form data being processed
# by Zope to prevent DoS attacks.
cgi-maxlen ${cgi-maxlen}
# Directive: http-header-max-length
#
# Description:
# Maximum number of bytes allowed within a HTTP request header. The request
# is discarded and considered as a DoS attack if the header size exceeds
# this limit.
http-header-max-length ${http-header-max-length}
# Directive: automatically-quote-dtml-request-data
#
# Description:
# Set this directive to 'off' in order to disable the autoquoting of
# implicitly retrieved REQUEST data by DTML code which contains a '<'
# when used in construction. When this directive is 'on',
# all data implicitly retrieved from the REQUEST in DTML (as opposed to
# addressing REQUEST.somevarname directly) that contains a '<' will be
# HTML-quoted when interpolated via a or &dtml- construct. This
# mitigates the possibility that DTML programmers will leave their
# sites open to a "client-side trojan" attack.
automatically-quote-dtml-request-data ${automatically-quote-dtml-request-data}
# Directive: trusted-proxy
#
# Description:
# Define one or more 'trusted-proxies' directives, each of which is a
# hostname or an IP address. The set of definitions comprises a list
# of front-end proxies that are trusted to supply an accurate
# X-Forwarded-For header to Zope. If a connection comes from
# a trusted proxy, Zope will trust any X-Forwarded header to contain
# the user's real IP address for the purposes of address-based
# authentication restriction.
# In profile use:
# trusted-proxy www.example.com
# trusted-proxy 192.168.1.1
${trusted-proxy}
# Directive: publisher-profile-file
#
# Description:
# Names a file on the filesystem which causes Zope's Python
# profiling capabilities to be enabled. For more information, see
# the Debug Information - > Profiling tab of Zope's Control_Panel
# via the Zope Management Interface. IMPORTANT: setting this
# filename will cause Zope code to be executed much more slowly
# than normal. This should not be enabled in production.
publisher-profile-file ${publisher-profile-file}
# Directive: security-policy-implementation
#
# Description:
# The default Zope security machinery is implemented in C. Change
# this to "python" to use the Python version of the Zope security
# machinery. This setting may impact performance but is useful
# for debugging purposes. See also the "verbose-security" option
# below.
security-policy-implementation ${security-policy-implementation}
# Directive: skip-authentication-checking
#
# Description:
# Set this directive to 'on' to cause Zope to skip checks related
# to authentication, for servers which serve only anonymous content.
# Only works if security-policy-implementation is 'C'.
skip-authentication-checking ${skip-authentication-checking}
# Directive: skip-ownership-checking
#
# Description:
# Set this directive to 'on' to cause Zope to ignore ownership checking
# when attempting to execute "through the web" code. By default, this
# directive is on in order to prevent 'trojan horse' security problems
# whereby a user with less privilege can cause a user with more
# privilege to execute dangerous code.
skip-ownership-checking ${skip-ownership-checking}
# Directive: verbose-security
#
# Description:
# By default, Zope reports authorization failures in a terse manner in
# order to avoid revealing unnecessary information. This option
# modifies the Zope security policy to report more information about
# the reason for authorization failures. It's designed for debugging.
# If you enable this option, you must also set the
# 'security-policy-implementation' to 'python'.
verbose-security ${verbose-security}
# Directive: maximum-number-of-session-objects
#
# Description:
# An integer value representing the number of items to use as a
# "maximum number of subobjects" value of the
# '/temp_folder/session_data' transient object container.
maximum-number-of-session-objects ${maximum-number-of-session-objects}
# Directive: session-add-notify-script-path
#
# Description:
# An optional fill Zope path name of a callable object to be set as the
# "script to call on object addition" of the sessioN_data transient
# object container created in the /temp_folder folder at startup.
session-add-notify-script-path ${session-add-notify-script-path}
# Directive: session-delete-notify-script-path
#
# Description:
# An optional fill Zope path name of a callable object to be set as the
# "script to call on object deletion" of the sessioN_data transient
# object container created in the /temp_folder folder at startup.
session-delete-notify-script-path ${session-delete-notify-script-path}
# Directive: session-timeout-minutes
#
# Description:
# An integer value representing the number of minutes to be used as the
# "data object timeout" of the '/temp_folder/session_data' transient
# object container.
session-timeout-minutes ${session-timeout-minutes}
# Directive: session-resolution-seconds
#
# Description:
# An integer value representing the number of seconds to be used as the
# "timeout resolution" of the '/temp_folder/session_data' transient
# object container.
session-resolution-seconds ${session-resolution-seconds}
# Directive: suppress-all-access-rules
#
# Description:
# If this directive is set to on, no access rules in your Zope site
# will be executed. This is useful if you "lock yourself out" of a
# particular part of your site by setting an improper access rule.
suppress-all-access-rules ${suppress-all-access-rules}
# Directive: suppress-all-site-roots
#
# Description:
# If this directive is set to on, no site roots in your Zope site will
# be effective. This is useful if you "lock yourself out" of a
# particular part of your site by setting an improper site root.
suppress-all-site-roots ${suppress-all-site-roots}
# Directive: database-quota-size
#
# Description:
# Set this directive to an integer in bytes in order to place a hard
# limit on the size which the default FileStorage-backed Zope database
# can grow. Additions to the database will not be permitted once this
# filesize is exceeded.
# In profile use:
# database-quota-size value
${database-quota-size}
# Directive: read-only-database
#
# Description:
# This causes the main Zope FileStorage-backed ZODB to be opened in
# read-only mode.
read-only-database ${read-only-database}
# Directives: logger
#
# Description:
# This area should define one or more "logger" sections of the
# names "access", "event", and "trace". The "access" logger logs
# Zope server access. The "event" logger logs Zope event
# information. The "trace" logger logs detailed server request
# information (for debugging purposes only). Each logger section
# may contain a "level" name/value pair which indicates the level
# of logging detail to capture for this logger. The default level
# is INFO. Level may be any of "CRITICAL", 'ERROR", WARN", "INFO",
# "DEBUG", and "ALL". Each logger section may additionally contain
# one or more "handler" sections which indicates a types of log
# "handlers" (file, syslog, NT event log, etc) to be used for the
# logger being defined. There are 5 types of handlers: logfile,
# syslog, win32-eventlog, http-handler, email-notifier. Each
# handler type has its own set of allowable subkeys which define
# aspects of the handler. All handler sections also allow for the
# specification of a "format" (the log message format string), a
# "dateformat" (the log message format for date strings), and a
# "level", which has the same semantics of the overall logger
# level but overrides the logger's level for the handler it's
# defined upon. XXXX much more detail necessary here
#
# Default:
#
# The access log will log to the file /log/Z2.log at
# level INFO, the event log will log to the file
# /log/event.log at level INFO, and the trace log
# will not be written anywhere.
level ${eventlog-level}
path ${eventlog-path}
level ${access-level}
path ${access-path}
format ${access-format}
#
# level WARN
#
# path INSTANCE/log/trace.log
# format %(message)s
#
#
# Directive: warnfilter
#
# Description:
# A section that allows you to define a warning filter.
# The following keys are valid within a warnfilter section:
#
# action: one of the following strings:
#
# "error" turn matching warnings into exceptions
# "ignore" never print matching warnings
# "always" always print matching warnings
# "default" print the first occurrence of matching warnings
# for each location where the warning is issued
# "module" print the first occurrence of matching warnings
# for each module where the warning is issued
# "once" print only the first occurrence of matching
# warnings, regardless of location
#
# message: a string containing a regular expression that the
# warning message must match (the match is compiled to
# always be case-insensitive)
#
# category: a Python dotted-path classname (must be a subclass of
# Warning) of which the warning category must be a subclass in
# order to match
#
# module: a string containing a regular expression that the
# module name must match (the match is compiled to be
# case-sensitive)
#
# lineno: an integer that the line number where the warning
# occurred must match, or 0 to match all line numbers
#
# All keys within a warnfilter section are optional. More than
# one warnfilter section may be specified.
# In profile use:
#
# action ignore
# category exceptions.DeprecationWarning
#
${warnfilter}
# Directive: max-listen-sockets
#
# Description:
# The maximum number of sockets that ZServer will attempt to open
# in order to service incoming connections.
max-listen-sockets ${max-listen-sockets}
# Directive: large-file-threshold
#
# Description:
# Requests bigger than this size get saved into a temporary file
# instead of being read completely into memory.
# In profile use:
# large-file-threshold value
${large-file-threshold}
# Directive: default-zpublisher-encoding
#
# Description:
# This controls what character set is used to encode unicode
# data that reaches ZPublisher without any other specified encoding.
default-zpublisher-encoding ${default-zpublisher-encoding}
# Database (zodb_db) section
#
# Description:
# A database section allows the definition of custom database and
# storage types. More than one zodb_db section can be defined.
# Main FileStorage database
path ${zodb-path}
mount-point /
# Temporary storage database (for sessions)
name temporary storage for sessioning
mount-point /temp_folder
container-class Products.TemporaryFolder.TemporaryContainer
# Use the clock-server to trigger the TimerService, needed for ERP5
# Activities
method /Control_Panel/timer_service/process_timer?interval:int=5
period 5