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