blob: df261c5dee653ae7b2d6901a281193ca3c32601f [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
# This template file can be used as example for James Server configuration
# DO NOT USE IT AS SUCH AND ADAPT IT TO YOUR NEEDS
# Configuration file for OpenSearch
# Read https://james.apache.org/server/config-opensearch.html for further details
opensearch.masterHost=opensearch
opensearch.port=9200
# Optional. Only http or https are accepted, default is http
# opensearch.hostScheme=http
# Optional, default is `default`
# Choosing the SSL check strategy when using https scheme
# default: Use the default SSL TrustStore of the system.
# ignore: Ignore SSL Validation check (not recommended).
# override: Override the SSL Context to use a custom TrustStore containing ES server's certificate.
# opensearch.hostScheme.https.sslValidationStrategy=default
# Optional. Required when using 'https' scheme and 'override' sslValidationStrategy
# Configure OpenSearch rest client to use this trustStore file to recognize nginx's ssl certificate.
# You need to specify both trustStorePath and trustStorePassword
# opensearch.hostScheme.https.trustStorePath=/file/to/trust/keystore.jks
# Optional. Required when using 'https' scheme and 'override' sslValidationStrategy
# Configure OpenSearch rest client to use this trustStore file with the specified password.
# You need to specify both trustStorePath and trustStorePassword
# opensearch.hostScheme.https.trustStorePassword=myJKSPassword
# Optional. default is `default`
# Configure OpenSearch rest client to use host name verifier during SSL handshake
# default: using the default hostname verifier provided by apache http client.
# accept_any_hostname: accept any host (not recommended).
# opensearch.hostScheme.https.hostNameVerifier=default
# Optional.
# Basic auth username to access opensearch.
# Ignore opensearch.user and opensearch.password to not be using authentication (default behaviour).
# Otherwise, you need to specify both properties.
# opensearch.user=elasticsearch
# Optional.
# Basic auth password to access opensearch.
# Ignore opensearch.user and opensearch.password to not be using authentication (default behaviour).
# Otherwise, you need to specify both properties.
# opensearch.password=secret
# You can alternatively provide a list of hosts following this format :
# opensearch.hosts=host1:9200,host2:9200
# opensearch.clusterName=cluster
opensearch.nb.shards=5
opensearch.nb.replica=1
opensearch.index.waitForActiveShards=1
opensearch.retryConnection.maxRetries=7
opensearch.retryConnection.minDelay=3000
# Index or not attachments (default value: true)
# Note: Attachments not implemented yet for postgresql, false for now
opensearch.indexAttachments=false
# Search overrides allow resolution of predefined search queries against alternative sources of data
# and allow bypassing opensearch. This is useful to handle most resynchronisation queries that
# are simple enough to be resolved against Cassandra.
#
# Possible values are:
# - `org.apache.james.mailbox.postgres.search.AllSearchOverride` Some IMAP clients uses SEARCH ALL to fully list messages in
# a mailbox and detect deletions. This is typically done by clients not supporting QRESYNC and from an IMAP perspective
# is considered an optimisation as less data is transmitted compared to a FETCH command. Resolving such requests against
# Postgresql is enabled by this search override and likely desirable.
# - `org.apache.james.mailbox.postgres.search.UidSearchOverride`. Same as above but restricted by ranges.
# - `org.apache.james.mailbox.postgres.search.DeletedSearchOverride`. Find deleted messages by looking up in the relevant Postgresql
# table.
# - `org.apache.james.mailbox.postgres.search.DeletedWithRangeSearchOverride`. Same as above but limited by ranges.
# - `org.apache.james.mailbox.postgres.search.NotDeletedWithRangeSearchOverride`. List non deleted messages in a given range.
# Lists all messages and filters out deleted message thus this is based on the following heuristic: most messages are not marked as deleted.
# - `org.apache.james.mailbox.postgres.search.UnseenSearchOverride`. List unseen messages in the corresponding Postgresql index.
#
# Please note that custom overrides can be defined here.
#
# opensearch.search.overrides=org.apache.james.mailbox.postgres.search.AllSearchOverride,org.apache.james.mailbox.postgres.search.DeletedSearchOverride, org.apache.james.mailbox.postgres.search.DeletedWithRangeSearchOverride,org.apache.james.mailbox.postgres.search.NotDeletedWithRangeSearchOverride,org.apache.james.mailbox.postgres.search.UidSearchOverride,org.apache.james.mailbox.postgres.search.UnseenSearchOverride
# Optional. Default is `false`
# When set to true, James will attempt to reindex from the indexed message when moved. If the message is not found, it will fall back to the old behavior (The message will be indexed from the blobStore source)
# opensearch.message.index.optimize.move=false