#  ============LICENSE_START=======================================================
#  Copyright (C) 2021 Pantheon.tech
#  Modifications Copyright (C) 2021 Bell Canada
#  Modifications Copyright (C) 2021 Nordix Foundation
#  ================================================================================
#  Licensed 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.
#
#  SPDX-License-Identifier: Apache-2.0
#  ============LICENSE_END=========================================================

server:
    port: 8080

rest:
    api:
        cps-base-path: /cps/api
        ncmp-base-path: /cps-ncmp/api

spring:
    main:
        banner-mode: "off"
    jpa:
        ddl-auto: create
        open-in-view: false
        properties:
            hibernate:
                enable_lazy_load_no_trans: true
                dialect: org.hibernate.dialect.PostgreSQLDialect

    datasource:
        url: jdbc:postgresql://${DB_HOST}:5432/cpsdb
        username: ${DB_USERNAME}
        password: ${DB_PASSWORD}
        driverClassName: org.postgresql.Driver
        initialization-mode: always

    cache:
        type: caffeine
        cache-names: yangSchema
        caffeine:
            spec: maximumSize=10000,expireAfterAccess=10m

    liquibase:
        change-log: classpath:changelog/changelog-master.yaml
        labels: ${LIQUIBASE_LABELS}

    servlet:
        multipart:
            enabled: true
            max-file-size: 100MB
            max-request-size: 100MB

    kafka:
        bootstrap-servers: ${KAFKA_BOOTSTRAP_SERVER:localhost:9092}
        security:
            protocol: PLAINTEXT
        producer:
            value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
            client-id: cps-core

notification:
    data-updated:
        enabled: false
        topic: ${CPS_CHANGE_EVENT_TOPIC:cps.cfg-state-events}

springdoc:
    swagger-ui:
        url: /openapi.yml
        path: /swagger-ui/index.html
        
security:
    # comma-separated uri patterns which do not require authorization
    permit-uri: /manage/**,/swagger-ui/**,/swagger-resources/**,/v3/api-docs
    auth:
        username: ${CPS_USERNAME}
        password: ${CPS_PASSWORD}

# Actuator
management:
    server:
        port: 8081
    endpoints:
        web:
            base-path: /manage
            exposure:
                include: info,health,loggers,prometheus
    endpoint:
        health:
            show-details: always
            # kubernetes probes: liveness and readiness
            probes:
                enabled: true

logging:
    level:
        org:
            springframework: INFO