-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathapplication.properties
More file actions
218 lines (214 loc) · 14.3 KB
/
application.properties
File metadata and controls
218 lines (214 loc) · 14.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
# See https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html for reference
################### Logging ###################################################
logging.level.root=info
logging.level.org.springframework.security=info
logging.level.life.qbic=${DM_LOG_LEVEL:info}
logging.level.life.qbic.datamanager=${DM_LOG_LEVEL:info}
logging.level.life.qbic.projectmanagement.application.authorization.acl=debug
logging.file.path=${DM_LOG_PATH:./logs}
###############################################################################
################### Security ##################################################
qbic.security.vault.key.env=DATAMANAGER_VAULT_KEY
qbic.security.vault.path=${DATAMANAGER_VAULT_PATH:keystore.p12}
qbic.security.vault.entry.password.env=DATAMANAGER_VAULT_ENTRY_PASSWORD
################### Datasources ###############################################
# Using Spring (Boot), you can provide multiple datasources. Each datasource
# can be configured by properties in this file.
# When configuring a datasource with transaction management and JPA
# repositories, keep in mind that you need a base package for every entity
# manager. Thus, using multiple datasources with JPA and thus multiple
# entitymanagers requires you to separate your database entity classes into
# separate packages.
### Finance datasource
qbic.finance.datasource.url=${FINANCE_DB_URL:127.0.0.1}
qbic.finance.datasource.driver-class-name=${FINANCE_DB_DRIVER:com.mysql.cj.jdbc.Driver}
qbic.finance.datasource.username=${FINANCE_DB_USER_NAME:myusername}
qbic.finance.datasource.password=${FINANCE_DB_USER_PW:astrongpassphrase!}
qbic.finance.datasource.ddl-auto=${FINANCE_DB_DDL_AUTO:none}
### data-management datasource
qbic.data-management.datasource.url=${DATAMANAGEMENT_DB_URL:127.0.0.1}
qbic.data-management.datasource.driver-class-name=${DATAMANAGEMENT_DB_DRIVER:com.mysql.cj.jdbc.Driver}
qbic.data-management.datasource.username=${DATAMANAGEMENT_DB_USER_NAME:myusername}
qbic.data-management.datasource.password=${DATAMANAGEMENT_DB_USER_PW:astrongpassphrase!}
qbic.data-management.datasource.ddl-auto=${DATAMANAGEMENT_DB_DDL_AUTO:none}
# Hikari
qbic.data-management.datasource.hikari.maximum-pool-size=20
qbic.data-management.datasource.hikari.minimum-idle=5
qbic.data-management.datasource.hikari.connection-timeout=15000
qbic.data-management.datasource.hikari.validation-timeout=3000
qbic.data-management.datasource.hikari.max-lifetime=1700000
qbic.data-management.datasource.hikari.keepalive-time=300000
# Uncomment for debugging hikari config
logging.level.com.zaxxer.hikari=INFO
### Hibernate for the default datasource
spring.jpa.database=mysql
# Can be enabled for debugging purposes, not recommended in production
spring.jpa.show-sql=false
spring.jpa.properties.hibernate.format_sql=false
# In case you want to access the H2 database (if you use one)
spring.h2.console.enabled=false
# Set explicitly to false to close a session on request finish
# https://www.baeldung.com/spring-open-session-in-view.
spring.jpa.open-in-view=false
spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
### JobrunR datasource
org.jobrunr.database.datasource=jobRunrDatasource
org.jobrunr.database.datasource.url=${JOBRUNR_DB_URL:${qbic.data-management.datasource.url}}
org.jobrunr.database.datasource.driver-class-name=${JOBRUNR_DB_DRIVER:${qbic.data-management.datasource.driver-class-name}}
org.jobrunr.database.datasource.username=${JOBRUNR_DB_USER_NAME:${qbic.data-management.datasource.username}}
org.jobrunr.database.datasource.password=${JOBRUNR_DB_USER_PW:${qbic.data-management.datasource.password}}
###############################################################################
################### JobRunr ###################################################
# JobRunr configuration for background tasks. Default port is 8000
org.jobrunr.background-job-server.enabled=true
org.jobrunr.dashboard.enabled=true
org.jobrunr.dashboard.port=${JOBRUNR_DASHBOARD_PORT:8000}
###############################################################################
################### server location ###########################################
server.port=${DM_PORT:8080}
server.servlet.context-path=${DM_SERVICE_CONTEXT_PATH:}
###############################################################################
################### email configuration ########################################
# For certain situations the application needs to send out emails.
# The email server configured here sends the emails.
spring.mail.username=${MAIL_USERNAME}
spring.mail.password=${MAIL_PASSWORD}
spring.mail.host=${MAIL_HOST:smtp.gmail.com}
spring.mail.default-encoding=UTF-8
spring.mail.port=${MAIL_PORT:587}
# Sometimes additional information about the instance is needed for an email
# these properties are configured here
service.host.name=${DM_SERVICE_HOST:127.0.0.1}
service.host.protocol=${DM_HOST_PROTOCOL:https}
service.host.port=${DM_SERVICE_PORT:-1}
# The path to an existing directory on the host's file system where
# the application will create temporary directories, e.g. for preparing download assets
service.host.temp.dir=${DM_TEMP_DIR:./tmp}
###############################################################################
################### OpenBis configuration #####################################
openbis.user.name=${OPENBIS_USER_NAME:}
openbis.user.password=${OPENBIS_USER_PASSWORD:}
openbis.datasource.as.url=${OPENBIS_AS_URL:}
openbis.datasource.dss.url=${OPENBIS_DSS_URL:}
###############################################################################
################### Vaadin configuration ######################################
# To improve the performance during development.
# For more information https://vaadin.com/docs/flow/spring/tutorial-spring-configuration.html#special-configuration-parameters.
# See https://vaadin.com/docs/latest/flow/configuration/properties#properties for property reference
vaadin.allowed-packages=com.vaadin,org.vaadin,dev.hilla,life.qbic
# Launch the default browser when starting the application in development mode
vaadin.launch-browser=false
# Configures the lock check strategy in Vaadin and enables easier tracing for session lock issues.
# or THROW for more restriction and fail fast strategy (e.g. during development)
vaadin.sessionLockCheckStrategy=${VAADIN_LOCK_STRATEGY:log}
###############################################################################
################### Routing ###################################################
# route for mail confirmation consumption
routing.email-confirmation.endpoint=${EMAIL_CONFIRMATION_ENDPOINT:/login}
routing.email-confirmation.confirmation-parameter=${EMAIL_CONFIRMATION_PARAMETER:confirm-email}
# route for password reset
routing.password-reset.endpoint=${PASSWORD_RESET_ENDPOINT:/registration/new-password}
routing.password-reset.reset-parameter=${PASSWORD_RESET_PARAMETER:user-id}
# route to project resource
routing.projects.endpoint=/projects
routing.projects.info.endpoint=/projects/%s/info
routing.projects.samples.enpoint=/projects/%s/experiments/%s/samples
routing.registration.oidc.orcid.endpoint=/register/oidc
routing.registration.error.pending-email-verification=/register/pending-email-confirmation
################## oauth provider ###########################
spring.security.oauth2.client.registration.orcid.client-name=orcid
spring.security.oauth2.client.registration.orcid.client-id=${ORCID_CLIENT_ID:id}
spring.security.oauth2.client.registration.orcid.client-secret=${ORCID_CLIENT_SECRET:secret}
spring.security.oauth2.client.registration.orcid.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.orcid.redirect-uri=${ORCID_REDIRECT_URI:{baseUrl}/login/oauth2/code/orcid}
spring.security.oauth2.client.registration.orcid.scope=openid
spring.security.oauth2.client.provider.orcid.authorization-uri=${ORCID_AUTHORIZATION_URL:https://sandbox.orcid.org/oauth/authorize}
spring.security.oauth2.client.provider.orcid.token-uri=${ORCID_TOKEN_URI:https://sandbox.orcid.org/oauth/token}
spring.security.oauth2.client.provider.orcid.user-info-uri=${ORCID_USERINFO_URI:https://sandbox.orcid.org/oauth/userinfo}
spring.security.oauth2.client.provider.orcid.jwk-set-uri=${ORCID_JWK_SET_URI:https://sandbox.orcid.org/oauth/jwks}
qbic.external-service.person-search.orcid.base-uri=${ORCID_SEARCH_API_URI:https://pub.sandbox.orcid.org/v3.0}
qbic.external-service.person-search.orcid.client-id=${ORCID_SEARCH_CLIENT_ID:${spring.security.oauth2.client.registration.orcid.client-id}}
qbic.external-service.person-search.orcid.client-secret=${ORCID_SEARCH_CLIENT_SECRET:${spring.security.oauth2.client.registration.orcid.client-secret}}
qbic.external-service.person-search.orcid.token-uri=${ORCID_SEARCH_TOKEN_URI:${spring.security.oauth2.client.provider.orcid.token-uri}}
qbic.external-service.person-search.orcid.extended-search-uri=${qbic.external-service.person-search.orcid.base-uri}${ORCID_SEARCH_ENDPOINT:/expanded-search}
qbic.external-service.person-search.orcid.scope=/read-public
qbic.external-service.person-search.orcid.grant-type=client_credentials
qbic.external-service.person-search.orcid.issuer=${ORCID_SEARCH_ISSUER_URL:https://orcid.org}
qbic.external-service.organisation-search.ror.organisation-api-endpoint=${ROR_ORGANISATION_ENDPOINT:https://api.ror.org/v2/organizations/}
qbic.external-service.organisation-search.ror.client-id=${ROR_CLIENT_ID}
###############################################################################
################### ActiveMQ Artemis ##########################################
# ActiveMQ Artemis is used as a global message broker handling
# integration events across boundaries.
spring.artemis.mode=${ARTEMIS_MODE}
spring.artemis.broker-url=${ARTEMIS_BROKER_URL}
spring.artemis.user=${ARTEMIS_USER}
spring.artemis.password=${ARTEMIS_PASSWORD}
# Enable publish-subscribe pattern (globally!).
# That means the default pattern is pub-sub, not point-to-point.
spring.jms.pub-sub-domain=true
# Topic for identity events
qbic.broadcasting.identity.topic=User
###############################################################################
################### File Upload ###############################################
# Upload file size configuration
# Currently 16 MiB due to mediumblob specification in database (mebibyte, base-2)
spring.servlet.multipart.max-file-size=16777216
spring.servlet.multipart.fileSizeThreshold=16MB
spring.servlet.multipart.max-request-size=16MB
###############################################################################
################# Session servlet handling ####################################
#https://mvysny.github.io/vaadin-session-timeout/
# Close sessions after the servlet timeout except when there is activity.
# If there is activity and the session timeout is reached, the session is closed after three missed heartbeats.
# Keep in mind that it can take up to 1 minute after timeout to close the session.
# Session closes at server.servlet.session.timeout + 3*vaadin.heartbeatInterval + 0-1min
server.servlet.session.timeout=${SESSION_TIMEOUT:30m}
vaadin.closeIdleSessions=${SESSION_CLOSEIDLESESSIONS:true}
# Heartbeat value is specified as integer time in seconds
vaadin.heartbeatInterval=${SESSION_HEARTBEATINTERVAL:60}
################# Session cookie handling #####################################
server.servlet.session.cookie.max-age=${SESSION_COOKIE_MAX_AGE:30m}
server.servlet.session.cookie.secure=${SESSION_COOKIE_SECURE:true}
server.servlet.session.cookie.domain=${SESSION_COOKIE_DOMAIN:de.uni-tuebingen.qbic}
server.servlet.session.cookie.same-site=${SESSION_COOKIE_SAME_SITE:lax}
###############################################################################
################### Dev Tools #################################################
spring.devtools.livereload.enabled=true
spring.devtools.restart.enabled=true
###############################################################################
################### Miscellaneous #############################################
spring.mustache.check-template-location=false
#EHCache used by spring security ACL to cache ACEs
spring.cache.jcache.config=classpath:ehcache3.xml
announcement.initial-delay=${ANNOUNCEMENTS_INITIAL_DELAY:0s}
announcement.refresh-interval=${ANNOUNCEMENTS_REFRESH_INTERVAL:2h}
###############################################################################
################### Token Generation ##########################################
qbic.access-token.salt=${ACCESS_TOKEN_SALT:1213213213921093213982103821983928139218390281930812092189}
qbic.access-token.iteration-count=${ACCESS_TOKEN_ITERATIONS:100000}
################### Data Server Information ###################################
server.download.api.measurement.url=${DOWNLOAD_MEASUREMENT_API_URL:}
################## External links and contacts ###############################
qbic.communication.data-manager.source-code.url=https://github.com/qbicsoftware/data-manager-app
qbic.communication.documentation.url=${DOCUMENTATION_URL:https://qbicsoftware.github.io/research-data-management/}
qbic.communication.contact.email=${CONTACT_EMAIL:support@qbic.zendesk.com}
qbic.communication.contact.subject=${CONTACT_SUBJECT:Data Management Question}
qbic.communication.api.url=${API_URL:https://download.qbic.uni-tuebingen.de/swagger-ui.html}
################# Terminology Service ########################################
terminology.service.tib.endpoint.select=${TIB_SERVICE_API_SELECT_ENDPOINT:/api/select}
terminology.service.tib.api.url=${TIB_SERVICE_API_URL:https://api.terminology.tib.eu}
terminology.service.tib.endpoint.search=${TIB_SERVICE_API_SEARCH_ENDPOINT:/api/search}
# Configures the number of entries the local terminology lookup cache should store at maximum
# before overwriting entries with low usage statistics
terminology.service.cache.size=${TERM_CACHE_SIZE:10000}
###############################################################################
################### Message providers #########################################
spring.messages.encoding=UTF-8
spring.messages.cache-duration=1s
spring.messages.fallback-to-system-locale=true
spring.messages.basename=messages.error-messages, messages.toast-notifications, messages.dialog-notifications, messages.dialog-messages
# you always have to escape single quotes by another single quote ' -> ''
# https://www.mscharhag.com/java/resource-bundle-single-quote-escaping for reference
spring.messages.always-use-message-format=true