ivy.yaml
[engineDir]/configuration/reference/ivy.yaml
1#
2# -------------------------------------------
3# Axon.ivy Engine Configuration
4# -------------------------------------------
5#
6# This file shows configurations of the Axon.ivy engine and its external systems.
7# https://developer.axonivy.com/doc/8.0/engine-guide/configuration/
8#
9# Copy contents of this reference file to 'configuration/ivy.yaml' before adjusting
10# them to your needs.
11# https://developer.axonivy.com/doc/8.0/engine-guide/configuration/files/ivy-yaml.html
12#
13# By default the engine is pre-configured to run in demo mode.
14# To run an engine in a productive environment at least the system database
15# must be configured.
16#
17# SECRETS / PASSWORDS:
18# Any configuration value can be encrypted just by enclosing it with "${encrypt:}".
19# * to encrypt the string myPassword write "${encrypt:myPassword}"
20# https://developer.axonivy.com/doc/8.0/engine-guide/configuration/advanced-configuration.html#passwords
21#
22# OVERRIDING:
23# Any configuration value provided here can be set in alternative sources.
24# * environment variables: of the operating system can set app config entries.
25# Their key must be prefixed with 'IVY_'.
26# E.g. use 'IVY_SYSTEMDB_URL' to override the jdbc driver url.
27# https://developer.axonivy.com/doc/8.0/engine-guide/configuration/advanced-configuration.html#overriding-configuration
28#
29
30
31
32# == System Database Settings ==
33#
34# Axon.ivy requires a System Database to store the state of running workflow applications.
35#
36# Unless you run the engine in Demo mode, a valid System DB driver, url and the user+password credentials
37# that are able to connect to the database are mandatory.
38#
39# [Restart required]
40SystemDb:
41 # JDBC URL
42 Url: ""
43
44 # Name of the user to connect to system database. E.g. root, sa, admin, ivy, AxonIvy
45 # e.g. root
46 UserName: ""
47
48 # Password of the user to connect to the system database.
49 # e.g. "${encrypt:1234}"
50 # [Format:PASSWORD]
51 Password: ""
52
53 # If set to true the system database is automatically converted to the latest version during startup of the Axon.ivy Engine if needed.
54 Autoconvert: false
55
56 # Defines how long ivy should wait (in seconds) at startup for the availability of the db server
57 BootTimeout: 60
58
59 # JDBC Driver. If not set, it is auto determined based on the JDBC URL.
60 Driver: ""
61
62 # Additional driver specific connection properties.
63 DriverProperties:
64 #driverProperty: propertyValue
65
66 # Maximum number of connections to the system database.
67 MaxConnections: 50
68
69
70
71# == Adminstrators ==
72#
73# Administrators can configure, monitor and manage the Axon.ivy engine.
74#
75# Email is used to send info mails like license expiration
76# FullName is used to display a nice name for this user.
77#
78# You should hash the password with "${hash:mySecret}".
79# The real password cannot be recovered from the hash.
80#
81# Default administrator in demo mode is 'admin' with password 'admin'
82#Administrators:
83
84 # Example admin user with username james and password mySecret
85 #
86 #james:
87 #Password: "${hash:mySecret}"
88 #Email: info@localhost
89 #FullName: James David
90
91
92
93# == Deployment Setting ==
94#
95Deployment:
96
97 # Directory where the server watches for files to deploy.
98 # https://developer.axonivy.com/doc/8.0/engine-guide/administration/deployment.html
99 #
100 # You may want to use a UNC path to specify a remote network location.
101 Directory: deploy
102
103
104
105# == Data Settings ==
106#
107Data:
108
109 # Folder where applications are stored, unless otherwise defined in the deployment.
110 # To change this path, proceed as follows...
111 # 1. Adjust the path to point to its new location
112 # 2. Stop the running Engine immediatelly to avoid files being written to the old location
113 # 3. Move the existing applications to this new directory
114 # 4. Start the engine
115 # Absolute paths and relative paths are supported
116 # In demo mode not configurable and set to: [Data.WorkDirectory]/demo-applications
117 # [Restart required] for existing apps
118 AppDirectory: applications
119
120 # Root folder where application files are stored.
121 # A change in this setting will NOT automatically move existing application files to the new location.
122 # A change will require to manually move existing files to the new directory.
123 # Absolute and relative (to the engine root directory) paths are supported.
124 # If not set the files will be stored underneath each application's file directory.
125 # [Restart required] for existing apps
126 FilesDirectory: ""
127
128 # Directory where the server writes temporary working files to.
129 # [Restart required]
130 WorkDirectory: work
131
132
133# == Data Cache Settings ==
134#
135DataCache:
136
137 # Invalidate data cache groups and entries. Checks if the lifetime of caches has ended and invalidates them.
138 # You can set the delay in milliseconds between each check. This delay has to be greater than 0.
139 InvalidationInterval: 60000
140
141
142# == Elasticsearch Settings ==
143#
144# Axon.ivy uses an Elasticsearch instance to provide a fast query interface against BusinessData.
145# The bundled instance is started on demand, in a separate JVM, when an API request needs it.
146#
147# You can operate Axon.ivy with the bundled Elasticsearch server or with your own external Elasticsearch cluster.
148#
149# [Restart required] except for UserName and Password of ExternalServer
150Elasticsearch:
151
152 # The bundled Elasticsearch server...
153 # - is started in a separate JVM when a feature requires BusinessData access.
154 # - reachable only on 'localhost' but the access is unprotected.
155 # - JVM arguments used to start the bundled Elasticsearch server can be
156 # configured in the 'elasticsearch/config/jvm.options' file.
157 BundledServer:
158 # The path to the directory where the bundled Elasticsearch server stores data.
159 # It is recommend to configure a data directory that is located outsite of the Engine
160 # installation directory to ease the Engine migration to newer versions.
161 DataPath: elasticsearch/data
162 # The name of the cluster of the bundled Elasticsearch server.
163 ClusterName: ivy-elasticsearch-{uid}
164 # A free port in a certain port range is searched automatically.
165 # However, you can also fix the port by defining a port number.
166 Port: AUTO
167
168 #
169 # Configure the URL of your own Elasticsearch server if you want to use it instead of the bundled server.
170 #
171 # To install your own Elasticsearch server follow these steps
172 # https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html
173 #
174 # Currently Axon.ivy supports Elasticsearch server versions in the 7.17.x range.
175 # If your Elasticsearch server is running on another host, the access to that instance has to be protected.
176 # You can achieve that with a front-end webserver like NGINX that enforces basic authentication.
177 ExternalServer:
178
179 # Configure the URL of your own Elasticsearch server if you want to use it instead of the bundled server.
180 Url: ""
181
182 # Name of the user to use to authenticate in the external Elasticsearch server
183 UserName: ""
184
185 # Password of the user to use to authenticate in the external Elasticsearch server.
186 # e.g. "${encrypt:}"
187 # [Format:PASSWORD]
188 Password: ""
189
190 # Defines how long ivy should wait (in seconds) for the availability of the external elasticsearch server while booting.
191 BootTimeout: 60
192
193 # For every business data type an Elasticsearch index will be created. E.g. for type ch.ivy.Dossier the index name is <NamePrefix>-ch.ivy.dossier.
194 Index:
195 # The name prefix of the index to use to store business data.
196 # If multiple ivy Engines use the same Elasticsearch server instance, you need to change this property, that every ivy Engine has an unique indices.
197 NamePrefix: ivy.businessdata
198
199 Reindex:
200 # The number of business data objects that should be read in one batch from the system database
201 ReadWindowSize: 1000
202 # The number of business data objects that should be write in one batch to Elasticsearch
203 WriteWindowSize: 1000
204 # The size of the queue that is used to store business data objects read from the database
205 # until they are written to the Elasticsearch
206 QueueSize: 10000
207
208
209 # Configures the Elasticsearch client. The client is the ivy engine which communicates with Elasticsearch.
210 Client:
211 # Maximum seconds to wait until a connection to Elastisearch can be established.
212 ConnectTimeout: 10
213
214 # Maximum seconds to wait for data sent by Elastisearch.
215 # Raise this value if large datasets are expected.
216 ReadTimeout: 30
217
218
219
220
221# == EMail Settings ==
222#
223EMail:
224 Server:
225 Host: localhost
226
227 Port: -1
228
229 # Email address that will be used for emails sent by the server (e.g. task notification emails)
230 MailAddress: noreply@ivyserver.local
231
232 User: guest
233
234 # [Format:PASSWORD]
235 Password: ""
236
237 # [Values: NONE, START_TLS, SSL]
238 EncryptionMethod: NONE
239
240 SSL:
241 KeyAlias: ""
242
243 UseKey: false
244
245 DailyTaskSummary:
246 # Time of day when the task summary mails will be sent.
247 # Format is hh:mm. e.g. "02:00" or "14:15"
248 # [Format:DAYTIME]
249 TriggerTime: "00:00"
250
251
252
253# == Show Error Messages To End Users Settings ==
254#
255# When an error occurs while processing a user request an error screen is displayed to the user.
256#
257# The displayed error page can be customized for your needs:
258# https://developer.axonivy.com/doc/8.0/engine-guide/configuration/files/web-xml.html
259#
260Errors:
261 # Whether stacktraces, detailed error reports, etc. should be shown to end users.
262 #
263 # By default (false) we only show a unique 'Error Id'. This 'Error Id' can be used to find the error in the log files.
264 #
265 # For security reasons normal users should not see technical implementation details.
266 # But in development or pre-production environments it might be save to show the full error
267 # details directly to the end user.
268 ShowDetailsToEndUser: false
269
270
271
272# == Persistence Setting ==
273#
274Persistence:
275 JPA:
276 # Persist ivyScript auto initialized fields with NULL values. Affects types are...
277 # - ch.ivyteam.ivy.scripting.objects.Date
278 # - ch.ivyteam.ivy.scripting.objects.DateTime
279 # - ch.ivyteam.ivy.scripting.objects.Time
280 # If this option is disabled auto initialized values are stored as before Axon.ivy 6.4.
281 defaultInitializedAsNull: true
282
283
284
285# == Process Element Firing Statistic Settings ==
286#
287ProcessEngine:
288 FiringStatistic:
289
290 # If activated, a process element statistic is written periodically to the log-directory. If activated may slow down the server performance.
291 Active: false
292
293 # Interval in seconds the 'process element statistic' is written to the log directory
294 Interval: 300
295
296
297
298# == SSL Client Settings ==
299#
300SSL:
301 Client:
302 # A key store is used to read client keys (certificates).
303 # This is only required if a remote server requests a client certificate in order to authenticate the client.
304 KeyStore:
305 UseCustom: false
306 # [Format:PASSWORD]
307 KeyPassword: changeit
308 Algorithm: SunX509
309 File: configuration/keystore.p12
310 # [Format:PASSWORD]
311 Password: changeit
312 Provider: ""
313 Type: pkcs12
314
315 # A trust store is used to specify trusted server certificates or certificates of certification authorities.
316 # An SSL client autenticates a server by using the certificates in a trust store.
317 TrustStore:
318 # The system trust store of the Java Runtime Environment (JRE) contains well known certification authorities
319 UseSystem: true
320
321 # The custom trust store contains certificates that are self signed or signed by an unknown certification authority
322 UseCustom: false
323 Algorithm: PKIX
324 File: configuration/truststore.p12
325 # [Format:PASSWORD]
326 Password: changeit
327 Provider: ""
328 Type: pkcs12
329
330 # Full qualified class name of a trust manager class that is used to validate server certificates.
331 # This manager is only considered if neither a custom nor a system trust store is used.
332 ManagerClass: ""
333
334
335
336# == Workflow Settings ==
337#
338Workflow:
339
340 # Wether done cases and tasks can be seen by substitutes of the user who has worked on them.
341 # [Values: VISIBLE, INVISIBLE]
342 History.ForSubstitutes: VISIBLE
343
344
345# == Failure Behaviour ==
346#
347SystemTask:
348 # Defines the behaviour in case a system task fails.
349 # [Values: FAIL_TASK_DO_RETRY, FAIL_TASK_DO_NOT_RETRY, DESTROY_TASK, DESTROY_CASE]
350 Failure.Behaviour: FAIL_TASK_DO_RETRY
351
352 # Interval in seconds between executions of the search job for system tasks.
353 # The job searches system tasks that were not executed because of failures.
354 SearchJob.Interval: 900
355
356
357
358# == Thread Pools Settings ==
359#
360ThreadPool:
361 # Executes process engine background operations like Database, WebService calls, etc.
362 BackgroundOperationExecutor:
363 # Minimum number of threads
364 CorePoolSize: 5
365 # Maximum number of threads
366 MaximumPoolSize: 200
367
368 # Executes unscheduled jobs
369 ImmediateJobExecutor:
370 # Minimum number of threads
371 CorePoolSize: 5
372 # Maximum number of threads
373 MaximumPoolSize: 50
374
375 # Executes scheduled jobs
376 ScheduledJobExecutor:
377 # Minimum number of threads
378 CorePoolSize: 5
379
380
381
382# == Update Checker Settings ==
383#
384# When newer Axon.ivy versions are available a message will be displayed on the Axon.ivy Engine main web page.
385# The update message contains information about the new versions and where those can be downloaded.
386#
387# While checking for new versions the following statistic information are sent to the update server.
388# These information are only used to improve the product:
389# - Engine (version, up time)
390# - Configuration (number of: cluster nodes, users, licenced users, applications, process model, process model version, deleted process model version, running cases, running tasks)
391# - Licence information (number, organisation, individual)
392# - Operating system information (name, version, architecture, number of processors)
393# - System database (product name and version, driver, identification number)
394# - Java memory information (maximum heap memory, maximum non heap memory)
395# - JVM (Java virtual machine) information (version, vendor, name)
396# - Host information (host name, SHA-256 hashes of IP address and MAC address to identify the host without being able to read the original IP address and MAC address itself)
397#
398UpdateChecker:
399 # Whether Update notification messages are shown and statistic information are sent to the update server
400 Enabled: true
401
402 # Time of day when a update check will be executed
403 # Format is hh:mm. e.g. "02:00" or "14:15"
404 # [Format:DAYTIME]
405 ExecutionTime: ""
406
407
408
409Boot:
410 # Switch to maintencance mode if a configuration problem is detected during startup.
411 # If set to DISABLED you can explicit start the engine in maintenance mode by using the command line option '-maintenance'.
412 # [Values: AUTO, DISABLED]
413 MaintenanceMode: AUTO