| # |
| # 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.tenant.master-password=fineract |
| fineract.tenant.encrytion="AES/CBC/PKCS5Padding" |
| |
| fineract.mode.read-enabled=true |
| fineract.mode.write-enabled=true |
| fineract.mode.batch-enabled=true |
| |
| fineract.partitioned-job.partitioned-job-properties[0].job-name=LOAN_COB |
| fineract.partitioned-job.partitioned-job-properties[0].chunk-size=100 |
| fineract.partitioned-job.partitioned-job-properties[0].partition-size=100 |
| fineract.partitioned-job.partitioned-job-properties[0].thread-pool-core-pool-size=1 |
| fineract.partitioned-job.partitioned-job-properties[0].thread-pool-max-pool-size=1 |
| fineract.partitioned-job.partitioned-job-properties[0].thread-pool-queue-capacity=1 |
| fineract.partitioned-job.partitioned-job-properties[0].retry-limit=5 |
| fineract.partitioned-job.partitioned-job-properties[0].poll-interval=10000 |
| |
| fineract.remote-job-message-handler.spring-events.enabled=${FINERACT_REMOTE_JOB_MESSAGE_HANDLER_SPRING_EVENTS_ENABLED:true} |
| fineract.remote-job-message-handler.jms.enabled=${FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_ENABLED:false} |
| fineract.remote-job-message-handler.jms.request-queue-name=${FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_QUEUE_NAME:JMS-request-queue} |
| fineract.events.external.enabled=${FINERACT_EXTERNAL_EVENTS_ENABLED:false} |
| fineract.events.external.partition-size=${FINERACT_EXTERNAL_EVENTS_PARTITION_SIZE:5000} |
| fineract.events.external.producer.read-batch-size=${FINERACT_EXTERNAL_EVENTS_PRODUCER_READ_BATCH_SIZE:1000} |
| fineract.events.external.producer.jms.enabled=${FINERACT_EXTERNAL_EVENTS_PRODUCER_JMS_ENABLED:false} |
| fineract.events.external.producer.jms.event-queue-name=${FINERACT_EXTERNAL_EVENTS_PRODUCER_JMS_QUEUE_NAME:JMS-event-queue} |
| fineract.events.external.producer.jms.broker-url=${FINERACT_EXTERNAL_EVENTS_PRODUCER_JMS_BROKER_URL:tcp://127.0.0.1:61616} |
| fineract.events.external.producer.jms.thread-pool-task-executor-core-pool-size=${FINERACT_EVENT_TASK_EXECUTOR_CORE_POOL_SIZE:10} |
| fineract.events.external.producer.jms.thread-pool-task-executor-max-pool-size=${FINERACT_EVENT_TASK_EXECUTOR_MAX_POOL_SIZE:100} |
| |
| fineract.task-executor.default-task-executor-core-pool-size=${FINERACT_DEFAULT_TASK_EXECUTOR_CORE_POOL_SIZE:10} |
| fineract.task-executor.default-task-executor-max-pool-size=${FINERACT_DEFAULT_TASK_EXECUTOR_MAX_POOL_SIZE:100} |
| |
| fineract.loan.transactionprocessor.creocore.enabled=true |
| fineract.loan.transactionprocessor.early-repayment.enabled=true |
| fineract.loan.transactionprocessor.mifos-standard.enabled=true |
| fineract.loan.transactionprocessor.heavensfamily.enabled=true |
| fineract.loan.transactionprocessor.interest-principal-penalties-fees.enabled=true |
| fineract.loan.transactionprocessor.principal-interest-penalties-fees.enabled=true |
| fineract.loan.transactionprocessor.rbi-india.enabled=true |
| fineract.loan.transactionprocessor.due-penalty-fee-interest-principal-in-advance-principal-penalty-fee-interest.enabled=true |
| fineract.loan.transactionprocessor.due-penalty-interest-principal-fee-in-advance-penalty-interest-principal-fee.enabled=true |
| fineract.loan.transactionprocessor.advanced-payment-strategy.enabled=true |
| fineract.loan.transactionprocessor.error-not-found-fail=true |
| fineract.loan.status-change-history-statuses=NONE |
| |
| 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.accessKey= |
| fineract.content.s3.secretKey= |
| fineract.report.export.s3.bucket=${FINERACT_REPORT_EXPORT_S3_BUCKET_NAME:} |
| fineract.report.export.s3.enabled=${FINERACT_REPORT_EXPORT_S3_ENABLED:false} |
| |
| fineract.jpa.statementLoggingEnabled=${FINERACT_STATEMENT_LOGGING_ENABLED:false} |
| fineract.database.defaultMasterPassword=${FINERACT_DEFAULT_MASTER_PASSWORD:fineract} |
| |
| fineract.job.loan-cob-enabled=${FINERACT_JOB_LOAN_COB_ENABLED:true} |
| |
| fineract.sampling.enabled=false |
| fineract.sampling.sampledClasses= |
| |
| fineract.module.investor.enabled=true |
| |
| # sql validation |
| |
| # inject-blind |
| fineract.sql-validation.patterns[0].name=inject-blind |
| fineract.sql-validation.patterns[0].pattern=(?i).*[\\"'`]?\\s*[and|or]+\\s*[\\"'`]?([\\d\\w])+[\\"'`]?\\s*=\\s*[\\"'`]?(\\1)[\\"'`]?\\s*.* |
| |
| # detect-entry-point |
| fineract.sql-validation.patterns[1].name=detect-entry-point |
| fineract.sql-validation.patterns[1].pattern=(?i)^[\\"'`]?[\\)\\s]+ |
| |
| # inject-timing |
| fineract.sql-validation.patterns[2].name=inject-timing |
| fineract.sql-validation.patterns[2].pattern=(?i).*[\\"'`]?\\s*[and|\\+|&|\\|]+.*\\s*[sleep|pg_sleep|benchmark]+\\s*(\\(\\s*\\d+\\s*[,]?\\s*.*\\s*\\))+.* |
| |
| # detect-backend |
| fineract.sql-validation.patterns[3].name=detect-backend |
| fineract.sql-validation.patterns[3].pattern=(?i).*\\[\\s*\\"(\\w+\\(.*\\))=(\\1)\\"\\s*,\\s*\\"\\w+\\"\\s*\\].* |
| |
| # detect-column |
| fineract.sql-validation.patterns[4].name=detect-column |
| fineract.sql-validation.patterns[4].pattern=(?i).*[\\"'`]?\\s*(order\\s*by|group\\s*by|union\\s*select)+\\s+([\\d+|null]?\\s*,*\\s*)+\\s*.* |
| |
| # detect-out-of-bands |
| fineract.sql-validation.patterns[5].name=detect-out-of-bands |
| fineract.sql-validation.patterns[5].pattern=(?i).*(select)+\\s+(load_file)+.* |
| |
| # inject-stacked-query |
| fineract.sql-validation.patterns[6].name=inject-stacked-query |
| fineract.sql-validation.patterns[6].pattern=(?i).*[;]+\\s*(create|drop|alter|truncate|comment|select|insert|update|delete|merge|upsert|call|exec)+.*(from|into|set|table|column|database)*.* |
| |
| # inject-comment |
| fineract.sql-validation.patterns[7].name=inject-comment |
| fineract.sql-validation.patterns[7].pattern=(?i).*\\s+(-|/\\*|#|\\(\\{)++.* |
| |
| # main |
| fineract.sql-validation.profiles[0].name=main |
| fineract.sql-validation.profiles[0].description=Main Query Validation Profile |
| fineract.sql-validation.profiles[0].patternRefs[0].name=inject-blind |
| fineract.sql-validation.profiles[0].patternRefs[0].order=0 |
| fineract.sql-validation.profiles[0].patternRefs[1].name=detect-entry-point |
| fineract.sql-validation.profiles[0].patternRefs[1].order=1 |
| fineract.sql-validation.profiles[0].patternRefs[2].name=inject-timing |
| fineract.sql-validation.profiles[0].patternRefs[2].order=2 |
| fineract.sql-validation.profiles[0].patternRefs[3].name=detect-backend |
| fineract.sql-validation.profiles[0].patternRefs[3].order=3 |
| fineract.sql-validation.profiles[0].patternRefs[4].name=detect-column |
| fineract.sql-validation.profiles[0].patternRefs[4].order=4 |
| fineract.sql-validation.profiles[0].patternRefs[5].name=detect-out-of-bands |
| fineract.sql-validation.profiles[0].patternRefs[5].order=5 |
| fineract.sql-validation.profiles[0].patternRefs[6].name=inject-stacked-query |
| fineract.sql-validation.profiles[0].patternRefs[6].order=6 |
| fineract.sql-validation.profiles[0].patternRefs[7].name=inject-comment |
| fineract.sql-validation.profiles[0].patternRefs[7].order=7 |
| fineract.sql-validation.profiles[0].enabled=true |
| |
| # adhoc |
| fineract.sql-validation.profiles[1].name=adhoc |
| fineract.sql-validation.profiles[1].description=Adhoc Query Validation Profile |
| fineract.sql-validation.profiles[1].patternRefs[0].name=inject-blind |
| fineract.sql-validation.profiles[1].patternRefs[0].order=0 |
| fineract.sql-validation.profiles[1].patternRefs[1].name=detect-entry-point |
| fineract.sql-validation.profiles[1].patternRefs[1].order=1 |
| fineract.sql-validation.profiles[1].patternRefs[2].name=inject-timing |
| fineract.sql-validation.profiles[1].patternRefs[2].order=2 |
| fineract.sql-validation.profiles[1].patternRefs[3].name=detect-backend |
| fineract.sql-validation.profiles[1].patternRefs[3].order=3 |
| fineract.sql-validation.profiles[1].patternRefs[4].name=detect-column |
| fineract.sql-validation.profiles[1].patternRefs[4].order=4 |
| fineract.sql-validation.profiles[1].patternRefs[5].name=detect-out-of-bands |
| fineract.sql-validation.profiles[1].patternRefs[5].order=5 |
| fineract.sql-validation.profiles[1].patternRefs[6].name=inject-stacked-query |
| fineract.sql-validation.profiles[1].patternRefs[6].order=6 |
| fineract.sql-validation.profiles[1].patternRefs[7].name=inject-comment |
| fineract.sql-validation.profiles[1].patternRefs[7].order=7 |
| fineract.sql-validation.profiles[1].enabled=true |
| |
| # dynamic |
| fineract.sql-validation.profiles[2].name=dynamic |
| fineract.sql-validation.profiles[2].description=Dynamic Query Validation Profile |
| fineract.sql-validation.profiles[2].patternRefs[0].name=inject-blind |
| fineract.sql-validation.profiles[2].patternRefs[0].order=0 |
| fineract.sql-validation.profiles[2].patternRefs[1].name=detect-entry-point |
| fineract.sql-validation.profiles[2].patternRefs[1].order=1 |
| fineract.sql-validation.profiles[2].patternRefs[2].name=inject-timing |
| fineract.sql-validation.profiles[2].patternRefs[2].order=2 |
| fineract.sql-validation.profiles[2].patternRefs[3].name=detect-backend |
| fineract.sql-validation.profiles[2].patternRefs[3].order=3 |
| fineract.sql-validation.profiles[2].patternRefs[4].name=detect-column |
| fineract.sql-validation.profiles[2].patternRefs[4].order=4 |
| fineract.sql-validation.profiles[2].patternRefs[5].name=detect-out-of-bands |
| fineract.sql-validation.profiles[2].patternRefs[5].order=5 |
| fineract.sql-validation.profiles[2].patternRefs[6].name=inject-stacked-query |
| fineract.sql-validation.profiles[2].patternRefs[6].order=6 |
| fineract.sql-validation.profiles[2].patternRefs[7].name=inject-comment |
| fineract.sql-validation.profiles[2].patternRefs[7].order=7 |
| fineract.sql-validation.profiles[2].enabled=true |
| |
| 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 |
| |
| spring.main.allow-bean-definition-overriding=true |
| spring.batch.initialize-schema=NEVER |
| # Disabling Spring Batch jobs on startup |
| spring.batch.job.enabled=false |
| |
| resilience4j.retry.instances.executeCommand.max-attempts=3 |
| resilience4j.retry.instances.executeCommand.wait-duration=1s |
| resilience4j.retry.instances.executeCommand.enable-exponential-backoff=true |
| resilience4j.retry.instances.executeCommand.exponential-backoff-multiplier=2 |
| resilience4j.retry.instances.executeCommand.retryExceptions=org.springframework.dao.CannotAcquireLockException,org.springframework.orm.ObjectOptimisticLockingFailureException |
| |
| resilience4j.retry.instances.processJobDetailForExecution.max-attempts=3 |
| resilience4j.retry.instances.processJobDetailForExecution.wait-duration=1s |
| resilience4j.retry.instances.processJobDetailForExecution.enable-exponential-backoff=true |
| resilience4j.retry.instances.processJobDetailForExecution.exponential-backoff-multiplier=2 |
| |
| resilience4j.retry.instances.recalculateInterest.max-attempts=3 |
| resilience4j.retry.instances.recalculateInterest.wait-duration=1s |
| resilience4j.retry.instances.recalculateInterest.enable-exponential-backoff=true |
| resilience4j.retry.instances.recalculateInterest.exponential-backoff-multiplier=2 |
| resilience4j.retry.instances.recalculateInterest.retryExceptions=org.springframework.dao.CannotAcquireLockException,org.springframework.orm.ObjectOptimisticLockingFailureException |
| |
| resilience4j.retry.instances.postInterest.max-attempts=3 |
| resilience4j.retry.instances.postInterest.wait-duration=1s |
| resilience4j.retry.instances.postInterest.enable-exponential-backoff=true |
| resilience4j.retry.instances.postInterest.exponential-backoff-multiplier=2 |
| resilience4j.retry.instances.postInterest.retryExceptions=org.springframework.dao.CannotAcquireLockException,org.springframework.orm.ObjectOptimisticLockingFailureException |
| |
| spring.cloud.aws.region.static=eu-central-1 |