# ============LICENSE_START======================================================= # Copyright (C) 2021 Pantheon.tech # Modifications Copyright (C) 2021-2022 Bell Canada # Modifications Copyright (C) 2021-2024 Nordix Foundation # Modifications Copyright (C) 2024 TechMahindra Ltd # ================================================================================ # 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: /ncmp ncmp-inventory-base-path: /ncmpInventory spring: main: banner-mode: "off" application: name: "cps-application" jpa: show-sql: false ddl-auto: create open-in-view: false properties: hibernate.enable_lazy_load_no_trans: true hibernate.dialect: org.hibernate.dialect.PostgreSQLDialect # Please ensure these values match those used in integration-test/src/test/resources/application.yml hibernate.id.new_generator_mappings: true hibernate.jdbc.batch_size: 100 datasource: url: jdbc:postgresql://${DB_HOST}:${DB_PORT:5432}/cpsdb username: ${DB_USERNAME} password: ${DB_PASSWORD} driverClassName: org.postgresql.Driver hikari: minimumIdle: 5 maximumPoolSize: 80 idleTimeout: 60000 connectionTimeout: 30000 leakDetectionThreshold: 30000 pool-name: CpsDatabasePool cache: type: caffeine cache-names: yangSchema caffeine: spec: maximumSize=10000,expireAfterAccess=10m liquibase: change-log: classpath:changelog/changelog-master.yaml label-filter: ${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: io.cloudevents.kafka.CloudEventSerializer client-id: cps-core consumer: group-id: ${NCMP_CONSUMER_GROUP_ID:ncmp-group} key-deserializer: org.springframework.kafka.support.serializer.ErrorHandlingDeserializer value-deserializer: org.springframework.kafka.support.serializer.ErrorHandlingDeserializer properties: spring.deserializer.key.delegate.class: org.apache.kafka.common.serialization.StringDeserializer spring.deserializer.value.delegate.class: io.cloudevents.kafka.CloudEventDeserializer spring.json.use.type.headers: false jackson: default-property-inclusion: NON_NULL serialization: FAIL_ON_EMPTY_BEANS: false sql: init: mode: ALWAYS app: ncmp: async-m2m: topic: ${NCMP_ASYNC_M2M_TOPIC:ncmp-async-m2m} avc: subscription-topic: ${NCMP_CM_AVC_SUBSCRIPTION:subscription} subscription-forward-topic-prefix: ${NCMP_FORWARD_CM_AVC_SUBSCRIPTION:ncmp-dmi-cm-avc-subscription-} subscription-response-topic: ${NCMP_RESPONSE_CM_AVC_SUBSCRIPTION:dmi-ncmp-cm-avc-subscription} subscription-outcome-topic: ${NCMP_OUTCOME_CM_AVC_SUBSCRIPTION:subscription-response} cm-events-topic: ${NCMP_CM_EVENTS_TOPIC:cm-events} lcm: events: topic: ${LCM_EVENTS_TOPIC:ncmp-events} dmi: cm-events: topic: ${DMI_CM_EVENTS_TOPIC:dmi-cm-events} device-heartbeat: topic: ${DMI_DEVICE_HEARTBEAT_TOPIC:dmi-device-heartbeat} cps: data-updated: change-event-notifications-enabled: ${CPS_CHANGE_EVENT_NOTIFICATIONS_ENABLED:true} topic: ${CPS_CHANGE_EVENT_TOPIC:cps-data-updated-events} notification: enabled: true async: executor: core-pool-size: 2 max-pool-size: 10 queue-capacity: 500 wait-for-tasks-to-complete-on-shutdown: true thread-name-prefix: Async- time-out-value-in-ms: 60000 springdoc: swagger-ui: disable-swagger-default-url: true urlsPrimaryName: cps-core urls: - name: cps-core url: /api-docs/cps-core/openapi.yaml - name: cps-ncmp url: /api-docs/cps-ncmp/openapi.yaml - name: cps-ncmp-inventory url: /api-docs/cps-ncmp/openapi-inventory.yaml security: # comma-separated uri patterns which do not require authorization permit-uri: /actuator/**,/swagger-ui.html,/swagger-ui/**,/swagger-resources/**,/api-docs/**,/v3/api-docs/** auth: username: ${CPS_USERNAME:cpsuser} password: ${CPS_PASSWORD:cpsr0cks!} # Actuator management: endpoints: web: exposure: include: info,health,loggers,prometheus endpoint: health: show-details: always # kubernetes probes: liveness and readiness probes: enabled: true logging: format: json level: org: springframework: INFO onap: cps: INFO ncmp: dmi: httpclient: connectionTimeoutInSeconds: 30 maximumConnectionsPerRoute: 50 maximumConnectionsTotal: 100 idleConnectionEvictionThresholdInSeconds: 5 auth: username: ${DMI_USERNAME:cpsuser} password: ${DMI_PASSWORD:cpsr0cks!} enabled: ${DMI_AUTH_ENABLED:true} api: base-path: dmi timers: advised-modules-sync: sleep-time-ms: 5000 locked-modules-sync: sleep-time-ms: 300000 cm-handle-data-sync: sleep-time-ms: 30000 subscription-forwarding: dmi-response-timeout-ms: 30000 model-loader: retry-time-ms: 1000 trust-level: dmi-availability-watchdog-ms: 30000 modules-sync-watchdog: async-executor: parallelism-level: 10 model-loader: maximum-attempt-count: 20 # Custom Hazelcast Config. hazelcast: cluster-name: ${CPS_NCMP_CACHES_CLUSTER_NAME:"cps-and-ncmp-common-cache-cluster"} mode: kubernetes: enabled: ${HAZELCAST_MODE_KUBERNETES_ENABLED:false} service-name: ${CPS_NCMP_SERVICE_NAME:"cps-and-ncmp-service"}