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