Merge "Remove subscriptionModelLoader flag"
[cps.git] / cps-application / src / main / resources / application.yml
1 #  ============LICENSE_START=======================================================
2 #  Copyright (C) 2021 Pantheon.tech
3 #  Modifications Copyright (C) 2021-2022 Bell Canada
4 #  Modifications Copyright (C) 2021-2024 Nordix Foundation
5 #  ================================================================================
6 #  Licensed under the Apache License, Version 2.0 (the "License");
7 #  you may not use this file except in compliance with the License.
8 #  You may obtain a copy of the License at
9 #
10 #        http://www.apache.org/licenses/LICENSE-2.0
11 #
12 #  Unless required by applicable law or agreed to in writing, software
13 #  distributed under the License is distributed on an "AS IS" BASIS,
14 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 #  See the License for the specific language governing permissions and
16 #  limitations under the License.
17 #
18 #  SPDX-License-Identifier: Apache-2.0
19 #  ============LICENSE_END=========================================================
20
21 server:
22     port: 8080
23
24 rest:
25     api:
26         cps-base-path: /cps/api
27         ncmp-base-path: /ncmp
28         ncmp-inventory-base-path: /ncmpInventory
29
30 spring:
31     main:
32         banner-mode: "off"
33     application:
34         name: "cps-application"
35     jpa:
36         show-sql: false
37         ddl-auto: create
38         open-in-view: false
39         properties:
40             hibernate.enable_lazy_load_no_trans: true
41             hibernate.dialect: org.hibernate.dialect.PostgreSQLDialect
42             # Please ensure these values match those used in integration-test/src/test/resources/application.yml
43             hibernate.id.new_generator_mappings: true
44             hibernate.jdbc.batch_size: 100
45
46     datasource:
47         url: jdbc:postgresql://${DB_HOST}:${DB_PORT:5432}/cpsdb
48         username: ${DB_USERNAME}
49         password: ${DB_PASSWORD}
50         driverClassName: org.postgresql.Driver
51         hikari:
52             minimumIdle: 5
53             maximumPoolSize: 80
54             idleTimeout: 60000
55             connectionTimeout: 120000
56             leakDetectionThreshold: 30000
57             pool-name: CpsDatabasePool
58
59     cache:
60         type: caffeine
61         cache-names: yangSchema
62         caffeine:
63             spec: maximumSize=10000,expireAfterAccess=10m
64
65     liquibase:
66         change-log: classpath:changelog/changelog-master.yaml
67         label-filter: ${LIQUIBASE_LABELS}
68
69     servlet:
70         multipart:
71             enabled: true
72             max-file-size: 100MB
73             max-request-size: 100MB
74
75     kafka:
76         bootstrap-servers: ${KAFKA_BOOTSTRAP_SERVER:localhost:9092}
77         security:
78             protocol: PLAINTEXT
79         producer:
80             value-serializer: io.cloudevents.kafka.CloudEventSerializer
81             client-id: cps-core
82         consumer:
83             group-id: ${NCMP_CONSUMER_GROUP_ID:ncmp-group}
84             key-deserializer: org.springframework.kafka.support.serializer.ErrorHandlingDeserializer
85             value-deserializer: org.springframework.kafka.support.serializer.ErrorHandlingDeserializer
86             properties:
87                 spring.deserializer.key.delegate.class: org.apache.kafka.common.serialization.StringDeserializer
88                 spring.deserializer.value.delegate.class: io.cloudevents.kafka.CloudEventDeserializer
89                 spring.json.use.type.headers: false
90
91     jackson:
92         default-property-inclusion: NON_NULL
93         serialization:
94             FAIL_ON_EMPTY_BEANS: false
95     sql:
96         init:
97             mode: ALWAYS
98 app:
99     ncmp:
100         async-m2m:
101             topic: ${NCMP_ASYNC_M2M_TOPIC:ncmp-async-m2m}
102         avc:
103             subscription-topic: ${NCMP_CM_AVC_SUBSCRIPTION:subscription}
104             subscription-forward-topic-prefix: ${NCMP_FORWARD_CM_AVC_SUBSCRIPTION:ncmp-dmi-cm-avc-subscription-}
105             subscription-response-topic: ${NCMP_RESPONSE_CM_AVC_SUBSCRIPTION:dmi-ncmp-cm-avc-subscription}
106             subscription-outcome-topic: ${NCMP_OUTCOME_CM_AVC_SUBSCRIPTION:subscription-response}
107             cm-events-topic: ${NCMP_CM_EVENTS_TOPIC:cm-events}
108     lcm:
109         events:
110             topic: ${LCM_EVENTS_TOPIC:ncmp-events}
111     dmi:
112         cm-events:
113             topic: ${DMI_CM_EVENTS_TOPIC:dmi-cm-events}
114         device-heartbeat:
115             topic: ${DMI_DEVICE_HEARTBEAT_TOPIC:dmi-device-heartbeat}
116
117
118 notification:
119     enabled: true
120     async:
121         executor:
122             core-pool-size: 2
123             max-pool-size: 10
124             queue-capacity: 500
125             wait-for-tasks-to-complete-on-shutdown: true
126             thread-name-prefix: Async-
127             time-out-value-in-ms: 2000
128
129 springdoc:
130     swagger-ui:
131         disable-swagger-default-url: true
132         urlsPrimaryName: cps-core
133         urls:
134             - name: cps-core
135               url: /api-docs/cps-core/openapi.yaml
136             - name: cps-ncmp
137               url: /api-docs/cps-ncmp/openapi.yaml
138             - name: cps-ncmp-inventory
139               url: /api-docs/cps-ncmp/openapi-inventory.yaml
140
141
142
143 security:
144     # comma-separated uri patterns which do not require authorization
145     permit-uri: /actuator/**,/swagger-ui.html,/swagger-ui/**,/swagger-resources/**,/api-docs/**,/v3/api-docs/**
146     auth:
147         username: ${CPS_USERNAME}
148         password: ${CPS_PASSWORD}
149
150 # Actuator
151 management:
152     endpoints:
153         web:
154             exposure:
155                 include: info,health,loggers,prometheus
156     endpoint:
157         health:
158             show-details: always
159             # kubernetes probes: liveness and readiness
160             probes:
161                 enabled: true
162
163 logging:
164     format: json
165     level:
166         org:
167             springframework: INFO
168             onap:
169                 cps: INFO
170 ncmp:
171     dmi:
172         httpclient:
173             connectionTimeoutInSeconds: 180
174             maximumConnectionsPerRoute: 50
175             maximumConnectionsTotal: 100
176             idleConnectionEvictionThresholdInSeconds: 5
177         auth:
178             username: ${DMI_USERNAME}
179             password: ${DMI_PASSWORD}
180             enabled: ${DMI_AUTH_ENABLED:true}
181         api:
182             base-path: dmi
183
184     timers:
185         advised-modules-sync:
186             sleep-time-ms: 5000
187         locked-modules-sync:
188             sleep-time-ms: 300000
189         cm-handle-data-sync:
190             sleep-time-ms: 30000
191         subscription-forwarding:
192             dmi-response-timeout-ms: 30000
193         model-loader:
194             retry-time-ms: 1000
195         trust-level:
196             dmi-availability-watchdog-ms: 30000
197
198     modules-sync-watchdog:
199         async-executor:
200             parallelism-level: 10
201
202     model-loader:
203         maximum-attempt-count: 20
204
205 # Custom Hazelcast Config.
206 hazelcast:
207     cluster-name: ${CPS_NCMP_CACHES_CLUSTER_NAME:"cps-and-ncmp-common-cache-cluster"}
208     mode:
209         kubernetes:
210             enabled: ${HAZELCAST_MODE_KUBERNETES_ENABLED:false}
211             service-name: ${CPS_NCMP_SERVICE_NAME:"cps-and-ncmp-service"}