blob: 92e16a83d8f98557c5d9415b7fa835579d25b9e5 [file] [log] [blame]
# ============================================= BlobStore Implementation ==================================
# Read https://james.apache.org/server/config-blobstore.html for further details
# Choose your BlobStore implementation
# Mandatory, allowed values are: cassandra, s3
# *WARNING*: JAMES-3591 Cassandra is not made to store large binary content, its use will be suboptimal compared to
# alternatives (namely S3 compatible BlobStores backed by for instance S3, MinIO or Ozone)
implementation=s3
# ========================================= Deduplication ========================================
# If you choose to enable deduplication, the mails with the same content will be stored only once.
# Warning: Once this feature is enabled, there is no turning back as turning it off will lead to the deletion of all
# the mails sharing the same content once one is deleted.
# Mandatory, Allowed values are: true, false
deduplication.enable=false
# deduplication.family needs to be incremented every time the deduplication.generation.duration is changed
# Positive integer, defaults to 1
# deduplication.gc.generation.family=1
# Duration of generation.
# Deduplication only takes place within a singe generation.
# Only items two generation old can be garbage collected. (This prevent concurrent insertions issues and
# accounts for a clock skew).
# deduplication.family needs to be incremented everytime this parameter is changed.
# Duration. Default unit: days. Defaults to 30 days.
# deduplication.gc.generation.duration=30days
# ========================================= Encryption ========================================
# If you choose to enable encryption, the blob content will be encrypted before storing them in the BlobStore.
# Warning: Once this feature is enabled, there is no turning back as turning it off will lead to all content being
# encrypted. This comes at a performance impact but presents you from leaking data if, for instance the third party
# offering you a S3 service is compromised.
# Optional, Allowed values are: true, false, defaults to false
encryption.aes.enable=false
# Mandatory (if AES encryption is enabled) salt and password. Salt needs to be an hexadecimal encoded string
#encryption.aes.password=xxx
#encryption.aes.salt=73616c7479
# Optional, defaults to PBKDF2WithHmacSHA512
#encryption.aes.private.key.algorithm=PBKDF2WithHmacSHA512
# ========================================= Cassandra BlobStore Cache ======================================
# A cassandra cache can be enabled to reduce latency when reading small blobs frequently
# A dedicated keyspace with a replication factor of one is then used
# Cache eviction policy is TTL based
# Only blobs below a given threshold will be stored.
# To be noted that blobs are stored within a single Cassandra row, hence a low threshold should be used.
# Enable the cache? Optional and default to false. Must be a boolean.
cache.enable=false
# Cache eviction policy is TTL based. Optional and defaults to 7 days. Must be a duration.
# Valid units: ms, sec, min, hour, day, week, month, year
# cache.cassandra.ttl=7days
# Maximum size of stored objects expressed in bytes. Must be strictly positive. Defaults to 8192.
# Units: bytes, Kib, MiB, GiB, TiB
# cache.sizeThresholdInBytes=8 KiB
# ============================================== ObjectStorage ============================================
# ========================================= ObjectStorage Buckets ==========================================
# bucket names prefix
# Optional, default no prefix
# objectstorage.bucketPrefix=prod-
# Default bucket name
# Optional, default is bucketPrefix + `default`
# objectstorage.namespace=james
# ========================================= ObjectStorage on S3 =============================================
# Mandatory if you choose s3 storage service, S3 authentication endpoint
objectstorage.s3.endPoint=http://s3.docker.test:8000/
# Mandatory if you choose s3 storage service, S3 region
#objectstorage.s3.region=eu-west-1
objectstorage.s3.region=us-east-1
# Mandatory if you choose aws-s3 storage service, access key id configured in S3
objectstorage.s3.accessKeyId=accessKey1
# Mandatory if you choose s3 storage service, secret key configured in S3
objectstorage.s3.secretKey=secretKey1
# Optional if you choose s3 storage service: The trust store file, secret, and algorithm to use
# when connecting to the storage service. If not specified falls back to Java defaults.
#objectstorage.s3.truststore.path=
#objectstorage.s3.truststore.type=JKS
#objectstorage.s3.truststore.secret=
#objectstorage.s3.truststore.algorithm=SunX509
# optional: Object read in memory will be rejected if they exceed the size limit exposed here. Size, exemple `100M`.
# Supported units: K, M, G, defaults to B if no unit is specified. If unspecified, big object won't be prevented
# from being loaded in memory. This settings complements protocol limits.
# objectstorage.s3.in.read.limit=50M
# ============================================ Blobs Exporting ==============================================
# Read https://james.apache.org/server/config-blob-export.html for further details
# Choosing blob exporting mechanism, allowed mechanism are: localFile, linshare
# LinShare is a file sharing service, will be explained in the below section
# Optional, default is localFile
blob.export.implementation=localFile
# ======================================= Local File Blobs Exporting ========================================
# Optional, directory to store exported blob, directory path follows James file system format
# default is file://var/blobExporting
blob.export.localFile.directory=file://var/blobExporting
# ======================================= LinShare File Blobs Exporting ========================================
# LinShare is a sharing service where you can use james, connects to an existing LinShare server and shares files to
# other mail addresses as long as those addresses available in LinShare. For example you can deploy James and LinShare
# sharing the same LDAP repository
# Mandatory if you choose LinShare, url to connect to LinShare service
# blob.export.linshare.url=http://linshare:8080
# ======================================= LinShare Configuration BasicAuthentication ===================================
# Authentication is mandatory if you choose LinShare, TechnicalAccount is need to connect to LinShare specific service.
# For Example: It will be formalized to 'Authorization: Basic {Credential of UUID/password}'
# blob.export.linshare.technical.account.uuid=Technical_Account_UUID
# blob.export.linshare.technical.account.password=password