# *****************************************************************************
#
#  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:
  main:
    allow-bean-definition-overriding: true
  data:
    mongodb:
      username: admin
      password: MONGO_PASSWORD
      database: dlabdb
      port: 27017
      host: MONGO_HOST

server:
  port: 8088
  servlet:
    contextPath: /api/billing

server.ssl.key-store-type: JKS
server.ssl.key-store: /home/OS_USER/keys/endpoint.keystore.jks
server.ssl.key-store-password: KEY_STORE_PASSWORD
server.ssl.key-alias: endpoint

logging:
  file: /var/opt/dlab/log/ssn/billing.log
  level:
    com:
      epam: trace

keycloak:
  bearer-only: true
  realm: dlab
  resource: KEYCLOAK_CLIENT_ID
  credentials.secret: CLIENT_SECRET
  ssl-required: none
  auth-server-url: KEYCLOAK_AUTH_SERVER_URL