-
Notifications
You must be signed in to change notification settings - Fork 65
/
Copy pathapplication.properties
371 lines (349 loc) · 18.3 KB
/
application.properties
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
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
# TEMPORARY
calendar.useNewCalendarEvents=false
#debug=true
#PROJECTFORGE PROPERTIES
projectforge.domain=http://localhost:8080
projectforge.servletContextPath=
projectforge.testsystemMode=false
# Euro:
projectforge.currencySymbol=\u20AC
projectforge.currency=EUR
projectforge.defaultLocale=en
# H12, H24
projectforge.defaultTimeNotation=H24
# MONDAY (ISO 8601), ..., SUNDAY
# Could be set different by each user.
projectforge.defaultFirstDayOfWeek=MONDAY
# If not given, Java's value of default locale is used.
# Germany (ISO 8601): 4, US: 1
# defaultFirstDayOfWeek and minimalDaysInFirstWeek is used for calculating week of year
projectforge.minimalDaysInFirstWeek=
projectforge.excelPaperSize=DINA4
# If true, the user's may enter time savings by AI (artificial intelligence) in the timesheet.
# Please note: you may configure a note to display while editing timesheets (please refer admins configuration page).
projectforge.timesheets.timeSavingsByAI.enabled=false
# For development purposes (npm/yarn) you may enable the CORS filter for allowing cross origins.
# But never ever use this in productive environments.
projectforge.web.development.enableCORSFilter=false
# '*' doesn't work for modern browsers, you have to specify the allowed origins as list.
projectforge.web.development.enableCORSFilter.allowedOrigins=http://localhost:3000
# If true, some functionality may be activated (e. g. test menus etc.). Should be false in production mode.
projectforge.development.mode=false
#LoginDefaultHandler LdapMasterLoginHandler LdapSlaveLoginHandler
projectforge.login.handlerClass=LoginDefaultHandler
hibernate.search.directory.root=${projectforge.base.dir}/hibernateSearch
projectforge.resourcesDirectory=
projectforge.fontsDirectory=
# Name of invoice templates (without extension docx) to use (in ProjectForge's base dir: resources/officeTemplate.
projectforge.invoiceTemplate=
projectforge.logoFile=
projectforge.export.logoFile=
projectforge.support.mail=
# At default, no access log file will be written (also none of suspicious web access urls, they will be found in
# the security log). You may define here 'ALL' for logging all request urls or 'NONE' for logging no access.
# If no value or any other is given, suspicious requests will be logged. Default is NONE.
projectforge.accessLogConfig=NONE
# If true, the http session id and the ssl session id (both truncated due to security reasons) are displayed in the log files.
projectforge.logSessionIds=
# 2FA (Two-Factor-Authentication)
# List of regular expressions or predefined regex-list (as short-cuts) for defining 2FA for matching uri's
# with expiration interval.
# Documentation: https://projectforge.org/docs/adminguide/#securityconfig
# Please refer the admin's web page -> configuration -> Export 2FA configuration for verifying your configuration
projectforge.2fa.expiryPeriod.minutes1=
projectforge.2fa.expiryPeriod.minutes10=
projectforge.2fa.expiryPeriod.hours1=
projectforge.2fa.expiryPeriod.hours8=
projectforge.2fa.expiryPeriod.days30=
projectforge.2fa.expiryPeriod.days90=
# Number of days a 2FA is required, when stay-logged-in is used. Without stay-logged-in and given, a 2FA is required
# after every login. If not given, no 2FA is done after login.
projectforge.2fa.loginExpiryDays=
# Recommended setup
#projectforge.2fa.expiryPeriod.minutes1=
#projectforge.2fa.expiryPeriod.minutes10=PASSWORD
#projectforge.2fa.expiryPeriod.hours1=ADMIN_WRITE;MY_ACCOUNT
#projectforge.2fa.expiryPeriod.hours8=ADMIN;SCRIPT_WRITE;FINANCE_WRITE;ORGA_WRITE;HR_WRITE
#projectforge.2fa.expiryPeriod.days30=HR;FINANCE;ORGA;SCRIPT
#projectforge.2fa.expiryPeriod.days90=
#projectforge.2fa.loginExpiryPeriod=30
# If given, an e-mail as 2nd factor isn't allowed / provided for users of these groups (coma separated). Recommended is PF_Admin
#projectforge.2fa.disableMail2FAForGroups=PF_Admin
projectforge.2fa.disableMail2FAForGroups=
#Database user & password
spring.datasource.username=sa
spring.datasource.password=
# HSQL - JDBC url & driver
spring.datasource.url=jdbc:hsqldb:file:${projectforge.base.dir}/database/projectforge;shutdown=true
#spring.datasource.url=jdbc:hsqldb:hsql://localhost:9001/
#spring.datasource.url=jdbc:hsqldb:mem:${projectforge.base.dir}/database/projectforge;shutdown=true
spring.datasource.driver-class-name=org.hsqldb.jdbc.JDBCDriver
# Postgres - JDBC url & driver
#spring.datasource.url=jdbc:postgresql://localhost:5432/projectforge
#spring.datasource.driver-class-name=org.postgresql.Driver
# This is true by default and results in ignoring lazy loading (so bad)!
# https://stackoverflow.com/questions/30549489/what-is-this-spring-jpa-open-in-view-true-property-in-spring-boot
spring.jpa.open-in-view=false
spring.task.scheduling.pool.size=10
spring.datasource.hikari.transaction-isolation=TRANSACTION_READ_COMMITTED
spring.datasource.hikari.maximum-pool-size=50
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.idle-timeout=600000
spring.datasource.hikari.minimum-idle=0
spring.datasource.hikari.validation-timeout=1000
# If set to true, check functioning of setup page:
spring.datasource.hikari.auto-commit=false
# Experimental! Second data source for Oak repository (if not given, segment tar is used).
oak.datasource.url=
oak.datasource.username=
oak.datasource.password=
oak.datasource.driver-class-name=org.postgresql.Driver
oak.datasource.hikari.maximum-pool-size=10
oak.datasource.hikari.minimum-idle=2
# in milliseconds
oak.datasource.hikari.connection-timeout=30000
# in milliseconds
oak.datasource.hikari.idle-timeout=600000
server.port=8080
server.address=localhost
# "HttpOnly" flag for the session cookie.
server.servlet.session.cookie.http-only=true
# If you have configured projectforge to use https, than the cookies will automatically have the secure flag.
#server.servlet.session.cookie.secure=true
# this avoids session fixation via jsessionid in URL
server.servlet.session.tracking-modes=cookie
# Session timeout in seconds.
server.servlet.session.timeout=14400
server.error.path=/error
#http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
#http://stackoverflow.com/questions/29918323/how-to-configure-rolling-file-appender-within-spring-boots-application-yml
logging.level.root=INFO
logging.level.org.hibernate=ERROR
logging.file.path=${projectforge.base.dir}/logs
logging.pattern.level=user:%X{user} %5p
logging.pattern.file=-%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} %X{user}@%X{ip}%X{logSessions} %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
# Content Security Policy header, generated by http://cspisawesome.com/
projectforge.security.csp-header-value=default-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'
# Upload sizes
spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=110MB
projectforge.max-file-size.datev=3MB
projectforge.max-file-size.xml-dump-import=10MB
projectforge.address.maxImageSize=5MB
# Server-Sent Events (SSE) enabled? If not, pull requests will be used. SSE is more efficient, but experimental.
projectforge.rest.sseEnabled=false
# password to encrypt the links which are sent by email for event invitations, max 32 characters
pf.config.security.teamCalCryptPassword=enter-a-password-here
# This should be a randomized key for hashing all passwords in addition to salt.
# If you loose this pepper password or if you change it later, no user with a password encrypted with a former pepper is able to log in anymore.
projectforge.security.passwordPepper=*******SECRET********
# All authentication tokens of the user's will be encrypted with this key.
# If you loose this key or if you change it later, all users have to renew their authentication passwords (their passwords will NOT be affected).
projectforge.security.authenticationTokenEncryptionKey=*******CHANGEIT********
projectforge.telephoneSystemNumber=0123456789
# IBAN (source) to use for xml export of SEPA transfers.
projectforge.fibu.sepa.defaultIBAN=DE87200500001234567890
# BIC (source) to use for xml export of SEPA transfers.
projectforge.fibu.sepa.defaultBIC=BANKDEFFXXX
# #number and #message will be replaced in the url:
#projectforge.smsUrl=http://asterisk.yourserver.org/sms.php?number=#number&message=#message
#projectforge.sms.httpMethod=GET
#projectforge.sms.url=http://smsgateway.acme.local/api.php
projectforge.sms.url=
#POST or GET (default):
projectforge.sms.httpMethod=GET
# Maximum length of message (ensured by ProjectForge)
projectforge.sms.smsMaxMessageLength=1000
# The pattern of the response string for service calls with error in phone number (receiver):
projectforge.sms.returnCodePattern.numberError=
# The pattern of the response string for service calls with error in message to send:
projectforge.sms.returnCodePattern.messageError=
# The pattern of the response string for service calls with error caused by a to large message to send:
projectforge.sms.returnCodePattern.messageToLargeError=
# The pattern of the response string for service calls with errors:
projectforge.sms.returnCodePattern.error=^Error.*
# This pattern will be checked last and is needed to check the success of the service:
projectforge.sms.returnCodePattern.success=^OK.*
# You may add all parameters (get or post), your sms service requires:
# Variables #number and #message will be replaced by the user's form input.
projectforge.sms.httpParameters={username:'projectforge',text:'#message',to:'#number'}
# If given and sms is configured, a rest call is provided secured by this auth key (see MessagingServiceRest).
projectforge.sms.publicRestCallAuthKey=
projectforge.phoneLookupKey=*******SECRET********
projectforge.keystoreFile=jssecacerts
projectforge.keystorePassphrase=changeit
projectforge.testsystemColor=#ff6868
projectforge.ldap.server=
projectforge.ldap.baseDN=
projectforge.ldap.managerUser=
projectforge.ldap.managerPassword=
projectforge.ldap.port=
projectforge.ldap.sslCertificateFile=
projectforge.ldap.groupBase=
projectforge.ldap.userBase=
projectforge.ldap.authentication=
projectforge.ldap.storePasswords=false
projectforge.ldap.posixAccountsDefaultGidNumber=
projectforge.ldap.sambaAccountsSIDPrefix=
projectforge.ldap.sambaAccountsPrimaryGroupSID=
#Cron-Jobs: second, minute, hour, day, month, weekday (UTC)
projectforge.cron.hourly=0 0 * * * *
projectforge.cron.nightly=0 30 2 * * *
projectforge.cron.sanityChecks=3 30 2 * * *
projectforge.cron.externalCalendar=0 */15 * * * *
# Nightly job runs at 4 am:
projectforge.privacyProtection.cronDaily=0 0 4 * * *
# Configure calendars, for which events in the past should be deleted (e. g. due to privacy protection):
#projectforge.privacyProtection.purgeCalendars=[{"calendarId":4711,"expiryDays":60}]
projectforge.privacyProtection.purgeCalendars=
# Nightly run at 0:30
projectforge.jcr.cron.backup=0 30 0 * * *
# The backup dir for jcr backups. If not given, the standard backup dir of ProjectForge in base dir is used.
projectforge.jcr.backupDir=
projectforge.jcr.maxDefaultFileSize=100MB
# Nightly run at 2:30
projectforge.jcr.cron.sanityCheck=2 30 0 * * *
# Keep JRC daily backups 8 days (and monthly/weekly afterwards)
projectforge.jcr.cron.purgeBackupKeepDailyBackups=8
# Keep JCR weekly backups 4 weeks (and monthly afterwards)
projectforge.jcr.cron.purgeBackupKeepWeeklyBackups=4
# If purgeBackupDir is given and exists, ProjectForge will purge daily backups older than 30 days keeping each first monthly backup.
# The filenames must contain the date in ISO format (...yyyy-MM-dd....).
# This is the backup dir to look for:
projectforge.cron.purgeBackupDir=
# You may optional specify the prefix of the backup files (if not given, all files containing a date in its filename will be processed):
projectforge.cron.purgeBackupFilesPrefix=
# When to run (e. g. nightly at 00:40):
projectforge.cron.purgeBackup=0 40 0 * * *
# Keep daily backups 8 days (and monthly/weekly afterwards)
projectforge.cron.purgeBackupKeepDailyBackups=8
# Keep weekly backups 4 weeks (and monthly afterwards)
projectforge.cron.purgeBackupKeepWeeklyBackups=4
# D-velop interface
# Please specify uri and api-key in Your projectforge.properties for activating the D-velop interface.
projectforge.dvelop.baseUri=
projectforge.dvelop.apiKey=
# If given, all entities (TradingPartner) will be assigned to this organisation referred by name.
projectforge.dvelop.organization=
# Sipgate interface
# Please specify uri and token id/token in Your projectforge.properties for activating the Sipgate interface.
projectforge.sipgate.baseUri=
projectforge.sipgate.tokenId=
projectforge.sipgate.token=
# This device is used for calls, if the user doesn't use configured sipgate devices. The user may use any foreign caller number.
# Foreign caller numbers may be specified by the user via MyAccount page (e. g. "p2").
projectforge.sipgate.defaultDevice=
# Work-around: This number is used as base-number for building full numbers.
projectforge.sipgate.basePhoneNumber=
# If true, any changes in Sipgate will update local addresses (false only for testing)
projectforge.sipgate.updateLocalAddresses=true
# If true, remote contacts in Sipgate will be updated/created/deleted (false only for testing).
projectforge.sipgate.updateSipgateContacts=true
#Alias to public url
cfg.public.url=http://${server.address}:${server.port}
mail.session.pfmailsession.emailEnabled=true
#A standard sender email address. The application may use another one
mail.session.pfmailsession.standardEmailSender=sender@yourserver.org
#Mail protocol: Plain, StartTLS,SSL
mail.session.pfmailsession.encryption=Plain
#Hostname of the email server
mail.session.pfmailsession.smtp.host=mail.yourserver.org
#Port number of the email server
mail.session.pfmailsession.smtp.port=25
#The email server needs authentication
mail.session.pfmailsession.smtp.auth=false
#Authentification by username
mail.session.pfmailsession.smtp.user=
#Users password
mail.session.pfmailsession.smtp.password=
# Some mailservers require localhost:
mail.session.pfmailsession.smtp.localhost
#Configurare Database schema update. Valid values are validate, update, create, create-drop
hibernate.hbm2ddl.auto=
#Show the executed sql on console
hibernate.show_sql=false
#Format the shown execute sql in formatted form
hibernate.format_sql=false
hibernate.hibernateHighlightSql=false
hibernate.hibernateUseSqlComments=false
# Used by PfPersistenceService for logging statistics of db access.
hibernate.generate_statistics=true
spring.jpa.properties.hibernate.enhancer.enableLazyInitialization=false
spring.jpa.properties.hibernate.id.new_generator_mappings=true
spring.jpa.properties.hibernate.id.optimizer.pooled.preferred=true
spring.jpa.properties.hibernate.id.sequence_name=hibernate_sequence
#Internal ID of the connection type
#Flyway
#Location for: PF Core, PF Flyway Java migration (package), PF PlugIn
spring.flyway.locations=classpath:flyway/init/common,classpath:flyway/migrate/common,classpath:flyway/init/{vendor},classpath:flyway/migrate/{vendor},classpath:org/projectforge/flyway/dbmigration
spring.flyway.fail-on-missing-locations=false
spring.flyway.baseline-version=6.17.3
spring.flyway.baseline-on-migrate=true
spring.flyway.table=t_flyway_schema_version
# Should the less-files be compiled on every start-up? Should be true in productive mode. Starts faster for development with false:
pf.config.compileCss=true
projectforge.wicket.developmentMode=false
#SPRING PROPERTIES
spring.application.name=projectforge-application
# Needed By PFSpringConfiguration
spring.main.allow-circular-references=true
# Needed since groovy-all:3.0.1:
spring.freemarker.checkTemplateLocation=false
spring.groovy.template.check-template-location=false
# Tool birthday butler for generating Word documents with birthdays of staff members per month
# Filters the users by the organization (as well as addresses with birthday).
# organization is required to be set.
projectforge.birthdaybutler.organization=
# Comma separated list of email addresses for monthly receivement of the birthday list. E.g. receiver1@yourserver.org, receiver2@yourserver.org.
projectforge.birthdaybutler.emailAddresses=
# Locale to use for generating e-mails (e. g. de):
projectforge.birthdaybutler.locale=
# Accessibility / visibility of menu entries for users.
# NONE or empty for no visibility for any user. ALL for all users. Comma separated list of group name's or group id's for visibility.
# Please note: Most of the following entries are only used for visibility of menu entries. Access checking is done by the functionality itself.
# Some entries are only visible for user's with access, they are not listed here.
projectforge.menu.visibility.access=ALL
projectforge.menu.visibility.addresses=ALL
projectforge.menu.visibility.addressbooks=ALL
projectforge.menu.visibility.books=ALL
projectforge.menu.visibility.calendar=ALL
projectforge.menu.visibility.calendarList=ALL
# The functionality is available through the MyAccount-page:
projectforge.menu.visibility.changePassword=ALL
# The functionality is available through the MyAccount-page:
projectforge.menu.visibility.changeWlanPassword=ALL
projectforge.menu.visibility.feedback=ALL
projectforge.menu.visibility.gantt=ALL
projectforge.menu.visibility.groups=ALL
projectforge.menu.visibility.hrPlanning=ALL
projectforge.menu.visibility.hrView=ALL
projectforge.menu.visibility.monthlyEmployeeReport=ALL
projectforge.menu.visibility.myAccount=ALL
projectforge.menu.visibility.myMenu=ALL
projectforge.menu.visibility.my2FA=ALL
projectforge.menu.visibility.my2FASetup=ALl
projectforge.menu.visibility.myScripts=ALL
projectforge.menu.visibility.myPreferences=ALL
projectforge.menu.visibility.personalStatistics=ALL
projectforge.menu.visibility.phoneCall=ALL
projectforge.menu.visibility.poll=ALL
projectforge.menu.visibility.sendSms=ALL
projectforge.menu.visibility.search=ALL
projectforge.menu.visibility.taskTree=ALL
projectforge.menu.visibility.timesheets=ALL
projectforge.menu.visibility.users=ALL
projectforge.menu.visibility.vacation=ALL
projectforge.menu.visibility.vacationAccount=ALL
projectforge.menu.visibility.systemStatistics=ALL
# Build-in-plugins:
projectforge.menu.visibility.addressCampaign=ALL
projectforge.menu.visibility.addressCampaignValues=ALL
projectforge.menu.visibility.datatransfer=ALL
# Should only visible for IHK-Azubis:
projectforge.menu.visibility.ihk=NONE
# The following property is also used for access checking.
projectforge.menu.visibility.licenseManagement=ALL
projectforge.menu.visibility.memo=ALL
projectforge.menu.visibility.merlin=ALL
projectforge.menu.visibility.skillmatrix=ALL
projectforge.menu.visibility.todo=ALL