#
# 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.
#

fineract.node-id=1

fineract.security.basicauth.enabled=true
fineract.security.oauth.enabled=false
fineract.security.2fa.enabled=false

fineract.tenant.host=localhost
fineract.tenant.port=3306
fineract.tenant.username=root
fineract.tenant.password=mysql
fineract.tenant.parameters=
fineract.tenant.timezone=Asia/Kolkata
fineract.tenant.identifier=default
fineract.tenant.name=fineract_default
fineract.tenant.description=Default Demo Tenant

fineract.mode.read-enabled=true
fineract.mode.write-enabled=true
fineract.mode.batch-enabled=true

fineract.content.regex-whitelist-enabled=true
fineract.content.regex-whitelist=.*\\.pdf$,.*\\.doc,.*\\.docx,.*\\.xls,.*\\.xlsx,.*\\.jpg,.*\\.jpeg,.*\\.png
fineract.content.mime-whitelist-enabled=true
fineract.content.mime-whitelist=application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,image/jpeg,image/png
fineract.content.filesystem.enabled=true
fineract.content.filesystem.rootFolder=${user.home}/.fineract
fineract.content.s3.enabled=false
fineract.content.s3.bucketName=
fineract.content.s3.accessName=
fineract.content.s3.secretName=

management.health.jms.enabled=false

# FINERACT 1296
management.endpoint.health.probes.enabled=true
management.health.livenessState.enabled=true
management.health.readinessState.enabled=true

# FINERACT-883
management.info.git.mode=FULL
management.endpoints.web.exposure.include=health,info

# FINERACT-914
server.forward-headers-strategy=framework
server.port=8443
server.servlet.context-path=/fineract-provider
server.compression.enabled=true

server.ssl.enabled=true
server.ssl.protocol=TLS
server.ssl.key-store=keystore.jks
server.ssl.key-store-password=openmf

spring.datasource.hikari.driverClassName=org.mariadb.jdbc.Driver
spring.datasource.hikari.jdbcUrl=jdbc:mariadb://localhost:3306/fineract_tenants
spring.datasource.hikari.username=root
spring.datasource.hikari.password=mysql
spring.datasource.hikari.minimumIdle=3
spring.datasource.hikari.maximumPoolSize=10
spring.datasource.hikari.idleTimeout=60000
spring.datasource.hikari.connectionTimeout=20000
spring.datasource.hikari.connectionTestQuery=SELECT 1
spring.datasource.hikari.autoCommit=true
spring.datasource.hikari.dataSourceProperties['cachePrepStmts']=true
spring.datasource.hikari.dataSourceProperties['prepStmtCacheSize']=250
spring.datasource.hikari.dataSourceProperties['prepStmtCacheSqlLimit']=2048
spring.datasource.hikari.dataSourceProperties['useServerPrepStmts']=true
spring.datasource.hikari.dataSourceProperties['useLocalSessionState']=true
spring.datasource.hikari.dataSourceProperties['rewriteBatchedStatements']=true
spring.datasource.hikari.dataSourceProperties['cacheResultSetMetadata']=true
spring.datasource.hikari.dataSourceProperties['cacheServerConfiguration']=true
spring.datasource.hikari.dataSourceProperties['elideSetAutoCommits']=true
spring.datasource.hikari.dataSourceProperties['maintainTimeStats']=false
spring.datasource.hikari.dataSourceProperties['logSlowQueries']=true
spring.datasource.hikari.dataSourceProperties['dumpQueriesOnException']=true
spring.jpa.open-in-view=false
