#
# ============LICENSE_START=======================================================
# ONAP : ccsdk oran
# ================================================================================
# Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
# ================================================================================
# 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=========================================================
#
spring:
  application:
    name: a1-pms
  profiles:
    active: prod
  main:
    allow-bean-definition-overriding: true
  aop:
    auto: false
  r2dbc:
    url: "r2dbc:postgresql://127.0.0.1:5432/a1pms"
    username: a1pms
    password: mypwd
management:
  tracing:
    propagation:
      produce: ${ONAP_PROPAGATOR_PRODUCE:[W3C]}
    sampling:
      probability: 1.0
  endpoints:
    web:
      exposure:
        # Enabling of springboot actuator features. See springboot documentation.
        include: "loggers,logfile,health,info,metrics,threaddump,heapdump,shutdown"
  endpoint:
    shutdown:
      enabled: true
lifecycle:
  timeout-per-shutdown-phase: "20s"
springdoc:
  show-actuator: true
logging:
  # Configuration of logging
  level:
    ROOT: ERROR
    org.springframework: ERROR
    org.springframework.data: ERROR
    org.springframework.web.reactive.function.client.ExchangeFunctions: ERROR
    org.springframework.web.servlet.DispatcherServlet: ERROR
    org.onap.ccsdk.oran.a1policymanagementservice: INFO
  pattern:
    console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%thread] %logger{20} - %msg%n"
    file: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%thread] %logger{20} - %msg%n"
  file:
    name: /var/log/policy-agent/application.log
server:
   # Configuration of the HTTP/REST server. The parameters are defined and handeled by the springboot framework.
   # See springboot documentation.
   port : 8433
   http-port: 8081
   shutdown: "graceful"
   ssl:
      key-store-type: JKS
      key-store-password: policy_agent
      key-store: /opt/app/policy-agent/etc/cert/keystore.jks
      key-password: policy_agent
      key-alias: policy_agent
      # trust-store-password:
      # trust-store:
app:
  # Location of the component configuration file.
  filepath: /opt/app/policy-agent/data/application_configuration.json
  webclient:
    # Configuration of the trust store used for the HTTP client (outgoing requests)
    # The file location and the password for the truststore is only relevant if trust-store-used == true
    # Note that the same keystore as for the server is used.
    trust-store-used: false
    trust-store-password: policy_agent
    trust-store: /opt/app/policy-agent/etc/cert/truststore.jks
    # Configuration of usage of HTTP Proxy for the southbound accesses.
    # The HTTP proxy (if configured) will only be used for accessing NearRT RIC:s
    # proxy-type can be either HTTP, SOCKS4 or SOCKS5
    http.proxy-host:
    http.proxy-port: 0
    http.proxy-type: HTTP
  # path where the service can store data. This parameter is not relevant if S3 Object store is configured.
  vardata-directory: /var/policy-management-service
  # the config-file-schema-path referres to a location in the jar file. If this property is empty or missing,
  # no schema validation will be executed.
  config-file-schema-path: /application_configuration_schema.json
  # A file containing an authorization token, which shall be inserted in each HTTP header (authorization).
  # If the file name is empty, no authorization token is sent.
  auth-token-file:
  # A URL to authorization provider such as OPA. Each time an A1 Policy is accessed, a call to this
  # authorization provider is done for access control. If this is empty, no fine grained access control is done.
  authorization-provider:
  # S3 object store usage is enabled by defining the bucket to use. This will override the vardata-directory parameter.
  s3:
    endpointOverride: http://localhost:9000
    accessKeyId: minio
    secretAccessKey: miniostorage
    bucket:
  database-enabled: false
otel:
  sdk:
    disabled: ${ONAP_SDK_DISABLED:true}
    south: ${ONAP_TRACING_SOUTHBOUND:true}
  tracing:
    sampler:
      jaeger_remote:
        endpoint: ${ONAP_OTEL_SAMPLER_JAEGER_REMOTE_ENDPOINT:http://jaeger:14250}
  exporter:
    otlp:
      traces:
        protocol: ${ONAP_OTEL_EXPORTER_PROTOCOL:grpc}
        endpoint: ${ONAP_OTEL_EXPORTER_ENDPOINT:http://jaeger:4317}
  metrics:
    exporter: none
  logs:
    exporter: none
