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

spring:
  cloud:
    discovery:
      enabled: false
    config:
      enabled: false

# eureka:
#   client:
#     serviceUrl:
#       defaultZone: http://localhost:8761/eureka/
#       registerWithEureka: false
#   instance:
#     homePageUrl: "http://${eureka.hostname}:2021/identity/v1/"

server:
  port: 2021
  contextPath: /identity/v1

endpoints:
    shutdown:
      enabled: true

cassandra:
  clustername: datacenter1
  contactPoints: 10.0.2.2:9042
  keyspace: seshat

connpool:
  host: localhost
  port: 3306
  user: root
  password: mysql
  metainstance: system_console
  idleMaxAgeInMinutes: 240
  idleConnectionTestPeriodInMinutes: 60
  maxConnectionsPerPartition: 10
  minConnectionsPerPartition: 1
  partitionCount: 2
  acquireIncrement: 5
  statementsCacheSize: 100

executor:
  corepoolsize: 32
  maxpoolsize: 16384
  queuecapacity: 0
  threadname: fineractcn-executor-

system.publicKey:
  modulus: 18127979232651385577366788312577367809882840493309321947218444859734692803519322053118166861938127116063250592470870009582066787630638146674578444578864162263848522570791848618846268461050665448704495233021189752693589550011013299642312910333176350540133789870795905610030842272086304844975800905158104573387446873659409802855678797448220593733004510515015951396676579423158731638742125820984712730134997911206145523653040544527593404472473700394782702820939632486955986794980759384390018112339579933792560176712866026367677322796321647134284719444328549297157384676116482642453484323266505460321391509718183529003027
  exponent: 65537

identity:
  passwordExpiresInDays: 93
  timeToChangePasswordAfterExpirationInDays: 4
