# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.W

# Core Configuration for the Wave in a Box server
#
# Run "ant -f server-config.xml" to generate the server.config file automatically.
# To override default values pass them to the ant script. For example
# to override wave_server_domain run: ant -f server-config.xml -Dwave_server_domain=example.com


# Domain name of the wave server 
# Default value: local.net
wave_server_domain = @WAVE_SERVER_DOMAIN@

# A comma separated list of address on which to listen for connections.
# Each address is a comma separated host:port pair.
# Default value: localhost:9898
http_frontend_public_address = @HTTP_FRONTEND_PUBLIC_ADDRESS@

# A optional host:port address on which to listen for websocket connections.
# If no value is set for http_websocket_public_address it defaults to the first address specified
# by http_frontend_public_address.
# Default value: localhost:9898
http_websocket_public_address = @HTTP_WEBSOCKET_PUBLIC_ADDRESS@

# An optional host:port address for which the client is told to attempt websocket connections.
# If no value is set for http_websocket_presented_address it defaults to http_websocket_public_address
# Default value: localhost:9898
http_websocket_presented_address = @HTTP_WEBSOCKET_PRESENTED_ADDRESS@

# Default value: values passed to http_frontend_public_address.
http_frontend_addresses = @HTTP_FRONTEND_ADDRESSES@

# A comma separated list of webApp source directories
# Default value: ./war
resource_bases = @RESOURCE_BASES@

### Server-specific variables
###

# Settings for the different persistence stores. Currently supported: memory, file, mongodb
# Default value: memory
signer_info_store_type = @SIGNER_INFO_STORE_TYPE@

# The location where signer info certificate data is stored on disk. This should be changed.
# Note: This is only used when using the file signer info store. It is ignored
# for other data store types.
# Default value: _certificates
signer_info_store_directory = @SIGNER_INFO_STORE_DIRECTORY@

# Currently supported attachment types: mongodb, disk
# Default value: disk
attachment_store_type = @ATTACHMENT_STORE_TYPE@

# The location where attachments are stored on disk. This should be changed.
# Note: This is only used when using the disk attachment store. It is ignored
# for other data store types.
attachment_store_directory = @ATTACHMENT_STORE_DIRECTORY@

# Currently supported account store types: fake, memory, file, mongodb
# Default value: memory
account_store_type = @ACCOUNT_STORE_TYPE@

# The location where accounts are stored on disk. This should be changed.
# Note: This is only used when using the file account store. It is ignored
# for other data store types.
# Default value: _accounts
account_store_directory = @ACCOUNT_STORE_DIRECTORY@

# Currently supported delta store types: memory, file
# Note: file system support is experimental. Your server may crash. And the file format is
# not stable and shouldn't be relied upon for long-term storage yet; upcoming changes will
# require you to blow away your data.
# Default value: memory
delta_store_type = @DELTA_STORE_TYPE@

# The location where deltas are stored on disk. This should be changed.
# Note: This is only used when using the file delta store. It is ignored
# for other data store types.
# Default value: _deltas
delta_store_directory = @DELTA_STORE_DIRECTORY@

# The location where user sessions are persisted on disk. This allow to restore user sessions
# between restarts.
# Default value: _sessions
sessions_store_directory = @SESSIONS_STORE_DIRECTORY@

# The time in ms that the websocket connection can be idle before closing
# Default value: 0
websocket_max_idle_time = @WEBSOCKET_MAX_IDLE_TIME@

# Maximum websocket message size to be received in MB
# Default value: 2
websocket_max_message_size = @WEBSOCKET_MAX_MESSAGE_SIZE@

# Note: the default value for admin is an invalid user id that cannot be registered.
# To become an admin: Register a user and set its address as the value below.
# Admin has a privilege to change passwords of other users using an agent robot.
# Default value: @${wave_server_domain}
admin_user = @ADMIN_USER@

# The wave id of the welcome template wave. (Without domain, for example: w+Fxjs_-ZPmmA).
# If filled in then a copy of this wave (actually only the root blip) will be
# automatically added to the inbox of every new user.
# Default value: "" (empty)
welcome_wave_id = @WELCOME_WAVE_ID@

# The number of threads to listen on wavelet updates. Default value: 1
listener_executor_thread_count = @LISTENER_EXECUTOR_THREAD_COUNT@

# The number of threads for loading wavelets. Default value: 1
wavelet_load_executor_thread_count = @WAVELET_LOAD_EXECUTOR_THREAD_COUNT@

# The number of threads to persist deltas. Default value: 1
delta_persist_executor_thread_count = @DELTA_PERSIST_EXECUTOR_THREAD_COUNT@

# The number of threads to perform post wavelet loading logic. Default value: 1
storage_continuation_executor_thread_count = @STORAGE_CONTINUATION_EXECUTOR_THREAD_COUNT@

# The number of threads for looking up the wavelet ids
# while creating a list of all wavelets in the persistent storage. Default value: 1
lookup_executor_thread_count = @LOOKUP_EXECUTOR_THREAD_COUNT@

# To enable federation, edit the server.federation.config file and include it here.
# Or run ant -f server-config.xml server-federation-config
# If not using the server-config.xml ant script - it is possible just to comment the line.
include = server.federation.config

# These two parameters MUST appear in this file AFTER the above include of the
# federation config file. This is necesary so that the federation config file
# can override these two values.

# Set true to disable the verification of signed deltas
waveserver_disable_verification = true

# Set true to disable the verification of signers (certificates)
waveserver_disable_signer_verification = true

# Set true to prevent anyone registering on your server.
# When true, only the admin user can use the RegistrationRobot to add new accounts
# Default value: false
disable_registration = @DISABLE_REGISTRATION@

# Enable SSL for all address/port combinations listed (makes the next 2 settings non-optional).
# Default value: false
enable_ssl = @ENABLE_SSL@

# Path to keystore containg the ssl certificates to server
# Note: this is only used when enable_ssl set to true.
ssl_keystore_path = @SSL_KEYSTORE_PATH@

# Password to the keystore.
# Note: this is only used when enable_ssl set to true.
ssl_keystore_password = @SSL_KEYSTORE_PASSWORD@

# Enable client x509 cert. authentication?
enable_clientauth = @ENABLE_CLIENTAUTH@

# Domain of the email to look for as email field of x509 client auth certificates when using client authentication
clientauth_cert_domain = @CLIENTAUTH_CERT_DOMAIN@

# Disable login page to force x509-only authentication
disable_loginpage = @DISABLE_LOGINPAGE@

# Currently supported search types: memory, lucene.
# Default value: lucene.
search_type = @SEARCH_TYPE@

# The location where search indexes are stored on disk.
# Note: This is only used when using the lucene search type. It is ignored
# for other search types.
# Default value: _indexes
index_directory = @INDEX_DIRECTORY@

 # Google Analytics account.
 # Default value: empty
analytics_account = @ANALYTICS_ACCOUNT@

# Directory that holds the thumbnails for attachments.
# Icon must be in PNG format, and named as MIME type with replacing '/' to '_'.
# For example thumbnail file for ZIP format (MIME type application/zip) must be named application_zip.
thumbnail_patterns_directory = @THUMBNAIL_PATTERNS_DIRECTORY@
