ivy.yamlΒΆ

[engineDir]/configuration/reference/ivy.yaml

  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
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
#
# -------------------------------------------
# Axon.ivy Engine Configuration
# -------------------------------------------
# 
# This file shows configurations of the Axon.ivy engine and its external systems.
# https://developer.axonivy.com/doc/9.1/engine-guide/configuration/
#
# Copy contents of this reference file to 'configuration/ivy.yaml' before adjusting
# them to your needs.
# https://developer.axonivy.com/doc/9.1/engine-guide/configuration/files/ivy-yaml.html
#
# By default the engine is pre-configured to run in demo mode.
# To run an engine in a productive environment at least the system database
# must be configured.
#
# SECRETS / PASSWORDS:
# Any configuration value can be encrypted just by enclosing it with "${encrypt:}".
# * to encrypt the string myPassword write "${encrypt:myPassword}"
#   https://developer.axonivy.com/doc/9.1/engine-guide/configuration/advanced-configuration.html#passwords
#
# OVERRIDING:
# Any configuration value provided here can be set in alternative sources. 
# * environment variables: of the operating system can set app config entries. 
#    Their key must be prefixed with 'IVY_'. 
#    E.g. use 'IVY_SYSTEMDB_URL' to override the jdbc driver url.
#    https://developer.axonivy.com/doc/9.1/engine-guide/configuration/advanced-configuration.html#overriding-configuration
#



# == System Database Settings == 
#
# Axon.ivy requires a System Database to store the state of running workflow applications.
#
# Unless you run the engine in Demo mode, a valid System DB driver, url and the user+password credentials
# that are able to connect to the database are mandatory.
# 
# [Restart required]
SystemDb:
  # JDBC URL
  Url: ""

  # Name of the user to connect to system database. E.g. root, sa, admin, ivy, AxonIvy
  # e.g. root
  UserName: ""

  # Password of the user to connect to the system database.
  # e.g. "${encrypt:1234}"
  # [Format:PASSWORD]
  Password: ""

  # If set to true the system database is automatically converted to the latest version during startup of the Axon.ivy Engine if needed.
  Autoconvert: false

  # Defines how long ivy should wait (in seconds) at startup for the availability of the db server
  BootTimeout: 60

  # JDBC Driver. If not set, it is auto determined based on the JDBC URL.
  Driver: ""

  # Additional driver specific connection properties.
  DriverProperties:
    #driverProperty: propertyValue

  # Maximum number of connections to the system database.
  MaxConnections: 50



# == Adminstrators ==
#
# Administrators can configure, monitor and manage the Axon.ivy engine.
#
# Email is used to send info mails like license expiration
# FullName is used to display a nice name for this user.
# 
# You should hash the password with "${hash:mySecret}".
# The real password cannot be recovered from the hash.
#
# Default administrator in demo mode is 'admin' with password 'admin'
#Administrators:

  # Example admin user with username james and password mySecret
  #  
  #james:
    #Password: "${hash:mySecret}"
    #Email: info@localhost
    #FullName: James David



# == Deployment Setting ==
#
Deployment:

  # Directory where the server watches for files to deploy.
  # https://developer.axonivy.com/doc/9.1/engine-guide/administration/deployment.html
  #
  # You may want to use a UNC path to specify a remote network location.
  Directory: deploy



# == Data Settings ==
#
Data:

  # Folder where applications are stored, unless otherwise defined in the deployment.
  # If you change this path, proceed as follows...
  #   1. Stop the engine
  #   2. Change this path and move the existing applications to this new directory
  #   3. Start the engine
  # Absolute paths and relative paths are supported
  # In demo mode not configurable and set to: [Data.WorkDirectory]/demo-applications
  # [Restart required] for existing apps
  AppDirectory: applications

  # Root folder where application files are stored.
  # A change in this setting will NOT automatically move existing application files to the new location.
  # A change will require to manually move existing files to the new directory.
  # Absolute and relative (to the engine root directory) paths are supported.
  # If not set the files will be stored underneath each application's file directory.
  # [Restart required] for existing apps
  FilesDirectory: ""

  # Directory where the server writes temporary working files to.
  # [Restart required]
  WorkDirectory: work


# == Data Cache Settings ==
#
DataCache:
  
  # Invalidate data cache groups and entries. Checks if the lifetime of caches has ended and invalidates them.
  # You can set the delay in milliseconds between each check. This delay has to be greater than 0.
  InvalidationInterval: 60000


# == Elasticsearch Settings ==
#
# Axon.ivy uses an Elasticsearch instance to provide a fast query interface against BusinessData.
# The bundled instance is started on demand, in a separate JVM, when an API request needs it.
#
# You can operate Axon.ivy with the bundled Elasticsearch server or with your own external Elasticsearch cluster.
#
# [Restart required] except for UserName and Password of ExternalServer
Elasticsearch:

  # The bundled Elasticsearch server...
  # - is started in a separate JVM when a feature requires BusinessData access.
  # - reachable only on 'localhost' but the access is unprotected. 
  # - JVM arguments used to start the bundled Elasticsearch server can be 
  #   configured in the 'elasticsearch/config/jvm.options' file.
  BundledServer:
    # The path to the directory where the bundled Elasticsearch server stores data.
    # It is recommend to configure a data directory that is located outsite of the Engine 
    # installation directory to ease the Engine migration to newer versions.
    DataPath: elasticsearch/data
    # The name of the cluster of the bundled Elasticsearch server.
    ClusterName: ivy-elasticsearch-{uid}


  # Configure the URL of your own Elasticsearch server if you want to use it instead of the bundled server.
  #
  # To install your own Elasticsearch server follow these steps
  # https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html
  #
  # Currently Axon.ivy supports Elasticsearch server versions in the 7.3.x range. 
  # If your Elasticsearch server is running on another host, the access to that instance has to be protected.
  # You can achieve that with a front-end webserver like NGINX that enforces basic authentication.
  ExternalServer:
  
    # Configure the URL of your own Elasticsearch server if you want to use it instead of the bundled server.
    Url: ""

    # Name of the user to use to authenticate in the external Elasticsearch server
    UserName: ""
    
    # Password of the user to use to authenticate in the external Elasticsearch server.
    # e.g. "${encrypt:}"
    # [Format:PASSWORD]
    Password: ""
    
    # Defines how long ivy should wait (in seconds) for the availability of the external elasticsearch server while booting.
    BootTimeout: 60

  # 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.
  Index:
    # The name prefix of the index to use to store business data.
    # If multiple ivy Engines use the same Elasticsearch server instance, you need to change this property, that every ivy Engine has an unique indices.
    NamePrefix: ivy.businessdata
    
    Reindex:
      # The number of business data objects that should be read in one batch from the system database
      ReadWindowSize: 1000
      # The number of business data objects that should be write in one batch to Elasticsearch
      WriteWindowSize: 1000
      # The size of the queue that is used to store business data objects read from the database 
      # until they are written to the Elasticsearch
      QueueSize: 10000


  # Configures the Elasticsearch client. The client is the ivy engine which communicates with Elasticsearch.
  Client:
    # Maximum seconds to wait until a connection to Elastisearch can be established.
    ConnectTimeout: 10
    
    # Maximum seconds to wait for data sent by Elastisearch. 
    # Raise this value if large datasets are expected.
    ReadTimeout: 30
         



# == EMail Settings ==
#
EMail:
  Server:
    Host: ""

    Port: -1

    # Email address that will be used for emails sent by the server (e.g. task notification emails)
    MailAddress: noreply@ivyserver.local

    User: guest

    # [Format:PASSWORD]
    Password: ""

    # [Values: NONE, START_TLS, SSL]
    EncryptionMethod: NONE

    SSL:
      KeyAlias: ""

      UseKey: false

  DailyTaskSummary:
    # Time of day when the task summary mails will be sent.
    # The engine must be running at this time otherwise the daily task summary mails will not be sent.
    # Format is hh:mm. e.g. "02:00" or "14:15"
    # [Format:DAYTIME]
    TriggerTime: "00:00"



# == Show Error Messages To End Users Settings ==
#
# When an error occurs while processing a user request an error screen is displayed to the user. 
# 
# The displayed error page can be customized for your needs: 
# https://developer.axonivy.com/doc/9.1/engine-guide/configuration/files/web-xml.html
#
Errors:
  # Whether stacktraces, detailed error reports, etc. should be shown to end users.
  #
  # By default (false) we only show a unique 'Error Id'. This 'Error Id' can be used to find the error in the log files.
  # 
  # For security reasons normal users should not see technical implementation details.
  # But in development or pre-production environments it might be save to show the full error
  # details directly to the end user.
  ShowDetailsToEndUser: false



# == Persistence Setting ==
#
Persistence:
  JPA:
    # Persist ivyScript auto initialized fields with NULL values. Affects types are...
    #  - ch.ivyteam.ivy.scripting.objects.Date
    #  - ch.ivyteam.ivy.scripting.objects.DateTime
    #  - ch.ivyteam.ivy.scripting.objects.Time
    # If this option is disabled auto initialized values are stored as before Axon.ivy 6.4.
    defaultInitializedAsNull: true



# == Process Element Firing Statistic Settings ==
#
ProcessEngine:
  FiringStatistic:

    # If activated, a process element statistic is written periodically to the log-directory. If activated may slow down the server performance.
    Active: false

    # Interval in seconds the 'process element statistic' is written to the log directory
    Interval: 300



# == SSL Client Settings ==
#
SSL:
  Client:
    # A key store is used to read client keys (certificates). 
    # This is only required if a remote server requests a client certificate in order to authenticate the client. 
    KeyStore:
      UseCustom: false
      # [Format:PASSWORD]
      KeyPassword: changeit
      Algorithm: SunX509
      File: configuration/keystore.p12
      # [Format:PASSWORD]
      Password: changeit
      Provider: ""
      Type: pkcs12

    # A trust store is used to specify trusted server certificates or certificates of certification authorities. 
    # An SSL client autenticates a server by using the certificates in a trust store. 
    TrustStore:
      # The system trust store of the Java Runtime Environment (JRE) contains well known certification authorities
      UseSystem: true
      
      # The custom trust store contains certificates that are self signed or signed by an unknown certification authority 
      UseCustom: false
      Algorithm: PKIX
      File: configuration/truststore.p12
      # [Format:PASSWORD]
      Password: changeit
      Provider: ""
      Type: pkcs12

      # Full qualified class name of a trust manager class that is used to validate server certificates. 
      # This manager is only considered if neither a custom nor a system trust store is used.
      ManagerClass: ""



# == Workflow Settings ==
#
Workflow:

  # Wether done cases and tasks can be seen by substitutes of the user who has worked on them.
  # [Values: VISIBLE, INVISIBLE]
  History.ForSubstitutes: VISIBLE


# == Failure Behaviour ==
#
SystemTask:
  # Defines the behaviour in case a system task fails. 
  # [Values: FAIL_TASK_DO_RETRY, FAIL_TASK_DO_NOT_RETRY, DESTROY_TASK, DESTROY_CASE]
  Failure.Behaviour: FAIL_TASK_DO_RETRY

  # Interval in seconds between executions of the search job for system tasks.
  # The job searches system tasks that were not executed because of failures.
  SearchJob.Interval: 900



# == Thread Pools Settings ==
#
ThreadPool:
  # Executes process engine background operations like Database, WebService calls, etc.
  BackgroundOperationExecutor:
    # Minimum number of threads
    CorePoolSize: 5
    # Maximum number of threads
    MaximumPoolSize: 200
  
  # Executes unscheduled jobs
  ImmediateJobExecutor:
    # Minimum number of threads
    CorePoolSize: 5
    # Maximum number of threads
    MaximumPoolSize: 50
  
  # Executes scheduled jobs
  ScheduledJobExecutor:
    # Minimum number of threads
    CorePoolSize: 5



# == Update Checker Settings ==
#
# When newer Axon.ivy versions are available a message will be displayed on the Axon.ivy Engine main web page. 
# The update message contains information about the new versions and where those can be downloaded. 
#
# While checking for new versions the following statistic information are sent to the update server. 
# These information are only used to improve the product:
# - Engine (version, up time)
# - Configuration (number of: cluster nodes, users, licenced users, applications, process model, process model version, deleted process model version, running cases, running tasks)
# - Licence information (number, organisation, individual)
# - Operating system information (name, version, architecture, number of processors)
# - System database (product name and version, driver, identification number)
# - Java memory information (maximum heap memory, maximum non heap memory)
# - JVM (Java virtual machine) information (version, vendor, name)
# - 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)
#
UpdateChecker:
  #  Whether Update notification messages are shown and statistic information are sent to the update server 
  Enabled: true

  # Time of day when a update check will be executed
  # The engine must be running at this time otherwise the update check will not be executed.
  # Format is hh:mm. e.g. "02:00" or "14:15"
  # [Format:DAYTIME]
  ExecutionTime: ""
  


Boot:
  # Switch to maintencance mode if a configuration problem is detected during startup.
  # If set to DISABLED you can explicit start the engine in maintenance mode by using the command line option '-maintenance'.
  # [Values: AUTO, DISABLED]
  MaintenanceMode: AUTO