app.yaml

[engineDir]/configuration/reference/app.yaml

  1# yaml-language-server: $schema=https://json-schema.axonivy.com/app/13.2.1/app.json
  2#
  3# -------------------------------------------
  4# Axon Ivy Application Configuration
  5# -------------------------------------------
  6# 
  7# This file shows configurations of an Axon Ivy Engine application.
  8# https://developer.axonivy.com/doc/13.2/engine-guide/configuration/files/app-yaml.html
  9#
 10# By default applications are pre-configured to run without any dependencies.
 11# However in productive environments applications often interact with many 
 12# external system such a Mail Servers (SMTP) or Directory services (LDAP). 
 13# 
 14# Each application has its own '<APPNAME>/app.yaml' in the configuration directory.
 15# e.g. the corresponding file for the application 'MyApp' is 
 16# '[engineDir]/configuration/applications/MyApp/app.yaml'.
 17#
 18# Furthermore 'app.yaml' can be deployed as part of application zip in a 'config' folder.
 19# The deployed 'app.yaml' is installed in the application directory and has a lower
 20# priority than the '<APPNAME>/app.yaml' in the configuration directory.
 21# https://developer.axonivy.com/doc/13.2/engine-guide/deployment
 22#
 23# SECRETS / PASSWORDS:
 24# Any configuration value can be encrypted just by enclosing it with "${encrypt:}".
 25# * to encrypt the string myPassword write "${encrypt:myPassword}"
 26#   https://developer.axonivy.com/doc/13.2/engine-guide/configuration/advanced-configuration.html#passwords
 27#
 28# OVERRIDING:
 29# Any configuration value provided here can be set in alternative sources. 
 30# * environment variables: of the operating system can set app config entries. 
 31#    Their key must be prefixed with 'IVY_APPLICATIONS_MYAPP_'. 
 32#    E.g. use 'IVY_APPLICATIONS_MYAPP_SECURITYSYSTEM' to override the security system.
 33#    https://developer.axonivy.com/doc/13.2/engine-guide/configuration/advanced-configuration.html#overriding-configuration
 34#
 35
 36# The security system manages users and roles and must be referred by name.
 37# This setting is only evaluated at deployment time when the application not already exists!
 38# You can not change the security system of an application later on.
 39SecuritySystem: default
 40# Defines a project containing overriding SubProcesses, HtmlDialogs or CMS entries for a dependent project.
 41# This allows you to customize generic solutions with minimal effort.
 42# The overriding project must be declared in the format <group-id>:<project-id> (e.g. ch.ivyteam.ivy:overrideProject).
 43# These identifiers can be copied from the ivy project deployment definition (pom.xml).
 44# https://developer.axonivy.com/doc/13.2/designer-guide/how-to/overrides.html
 45OverrideProject: ""
 46Data:
 47  # DEPRECATED: All runtime data will be stored by default in Data.Directory specified in ivy.yaml. Use Data.Directory
 48  # to change the location of stored files.
 49  # 
 50  # Application folder where application files are stored. It overrides the root file folder setting.
 51  # A change in this setting will NOT automatically move existing application files to the new location, so you need to move files manually.
 52  # Absolute and relative (to the engine root directory) paths are supported.
 53  # If not set the files will be stored under the path Data.Directory configured in ivy.yaml.
 54  # [restart required] for existing apps
 55  FilesDirectory: ""
 56
 57StandardProcess:
 58  # Standard processes are a set of predefined processes, which you can customize in your ivy project.
 59  # To enable these custom processes, the library id of the ivy project must be specified here.
 60  # The library id is <group-id>:<project-id> from the ivy project deployment definition.
 61  # e.g the library id of the portal template is "ch.ivyteam.ivy.project.portal:portalTemplate"
 62  # The default is 'auto' which means auto detection of standard process in your application
 63  # https://developer.axonivy.com/doc/13.2/designer-guide/user-interface/default-pages
 64  DefaultPages: auto
 65
 66Jsf:
 67  # JSF Primefaces Theme that is used by HTML Dialogs
 68  # Standard themes:
 69  # vela, saga, arya
 70  # Freya themes:
 71  # freya-ivy-light, freya-ivy-dark
 72  # Deprecated themes:
 73  # luna-amber, luna-blue, luna-green, luna-pink, nova-colored, nova-dark, nova-light
 74  # This configuration has no effect if theme is specified in the xhtml template.
 75  # https://developer.axonivy.com/doc/13.2/designer-guide/user-interface/user-dialogs/html-dialog-themes.html
 76  primefaces.theme: freya-ivy-light
 77
 78# Databases are defined in ivy projects with a name.
 79# Connection details from those databases can be overridden by addressing the database by name.
 80Databases:
 81#  # example Database
 82#  exampleDatabase:
 83#    # JDBC Url to use for connections.
 84#    # [examples: jdbc:{vendor}://{host}:{port}/{dbName}, jdbc:postgresql://pghost/prod, jdbc:mysql://mysqlhost/erpTstaging, jdbc:sqlserver://microsoft-host;databaseName=stammdaten]
 85#    Url: ""
 86#    # JDBC driver Name.
 87#    # [examples: com.mysql.cj.jdbc.Driver, org.postgresql.Driver, com.microsoft.sqlserver.jdbc.SQLServerDriver, oracle.jdbc.OracleDriver, org.mariadb.jdbc.Driver, org.hsqldb.jdbc.JDBCDriver]
 88#    Driver: ""
 89#    # Reference to a custom image.
 90#    # [examples: res:/webContent/myIcon.png]
 91#    Icon: ""
 92#    UserName: ""
 93#    # Secret password, should be stored encrypted. Encrypted values have a ${decrypt:} prefix
 94#    # [password]
 95#    Password: ""
 96#    MaxConnections:
 97#    # Driver specific custom properties
 98#    Properties:
 99#  
100
101# Rest Clients are defined in ivy projects with a name.
102# Any configuration from those clients can be overridden by addressing the client by name.
103RestClients:
104#  # example ConfigurableRestClient
105#  exampleConfigurableRestClient:
106#    Url: ""
107#    # Full qualified class names, that contribute REST-client features, such as authentication.
108#    # [examples: ch.ivyteam.ivy.rest.client.mapper.JsonFeature, ch.ivyteam.ivy.rest.client.authentication.HttpBasicAuthenticationFeature]
109#    Features:
110#    # Properties that supply dynamic values for REST-client features.
111#    Properties:
112#      jersey.config.client.followRedirects: ""
113#      # Read timeout interval, in milliseconds.
114#      jersey.config.client.readTimeout:
115#      # Connect timeout interval, in milliseconds.
116#      jersey.config.client.connectTimeout:
117#      jersey.config.client.chunkedEncodingSize: ""
118#      jersey.config.client.async.threadPoolSize: ""
119#      jersey.config.client.backgroundScheduler.threadPoolSize: ""
120#      jersey.config.client.useEncoding: ""
121#      jersey.config.client.ignoreExceptionResponse: ""
122#      jersey.config.client.disableAutoDiscovery: ""
123#      jersey.config.client.contentLength.buffer: ""
124#      jersey.config.client.disableJsonBinding: ""
125#      jersey.config.client.disableJsonProcessing: ""
126#      jersey.config.client.disableMetainfServicesLookup: ""
127#      jersey.config.client.disableMoxyJson: ""
128#      jersey.config.client.suppressHttpComplianceValidation: ""
129#      jersey.config.client.digestAuthUriCacheSizeLimit: ""
130#      jersey.config.client.proxy.uri: ""
131#      jersey.config.client.proxy.username: ""
132#      jersey.config.client.proxy.password: ""
133#      jersey.config.client.request.entity.processing: ""
134#      jersey.config.client.request.expect.100.continue.processing: ""
135#      jersey.config.client.request.expect.100.continue.threshold.size: ""
136#      jersey.config.client.uri.query.param.style: ""
137#      # The fully-qualified class name for the connector provider to use. Ivy uses the ApacheConnectorProvider.
138#      # Implementations of `org.glassfish.jersey.client.spi.ConnectorProvider` are valid.
139#      # Only has an effect when set in the REST Client Editor, cannot be changed during execution.
140#      # [examples: org.glassfish.jersey.client.HttpUrlConnectorProvider]
141#      jersey.config.client.connector.provider: org.glassfish.jersey.apache.connector.ApacheConnectorProvider
142#      jersey.config.client.sniHostName: ""
143#      jersey.config.client.ssl.context.supplier: ""
144#      # Maximum number of connections to pool.
145#      # Only has an effect if no or the Apache connector provider is set.
146#      # Only has an effect when set in the REST Client Editor, cannot be changed during execution.
147#      jersey.client.pool.maxConnections:
148#      # Bytes to record of the outgoing and incoming entity
149#      jersey.config.client.logging.entity.maxSize:
150#      JSON.Deserialization.USE_BIG_DECIMAL_FOR_FLOATS: false
151#      JSON.Deserialization.USE_BIG_INTEGER_FOR_INTS: false
152#      JSON.Deserialization.USE_LONG_FOR_INTS: false
153#      JSON.Deserialization.USE_JAVA_ARRAY_FOR_JSON_ARRAY: false
154#      # Feature that determines whether encountering of unknown properties
155#      # (those that do not map to a property, and there is not "any setter" or handler that can handle it)
156#      # should result in a failure or not.
157#      JSON.Deserialization.FAIL_ON_UNKNOWN_PROPERTIES: false
158#      JSON.Deserialization.FAIL_ON_NULL_FOR_PRIMITIVES: false
159#      JSON.Deserialization.FAIL_ON_NUMBERS_FOR_ENUMS: false
160#      JSON.Deserialization.FAIL_ON_INVALID_SUBTYPE: false
161#      JSON.Deserialization.FAIL_ON_READING_DUP_TREE_KEY: false
162#      JSON.Deserialization.FAIL_ON_IGNORED_PROPERTIES: false
163#      JSON.Deserialization.FAIL_ON_UNRESOLVED_OBJECT_IDS: false
164#      JSON.Deserialization.FAIL_ON_MISSING_CREATOR_PROPERTIES: false
165#      JSON.Deserialization.FAIL_ON_NULL_CREATOR_PROPERTIES: false
166#      JSON.Deserialization.FAIL_ON_MISSING_EXTERNAL_TYPE_ID_PROPERTY: false
167#      JSON.Deserialization.FAIL_ON_TRAILING_TOKENS: false
168#      JSON.Deserialization.FAIL_ON_SUBTYPE_CLASS_NOT_REGISTERED: false
169#      JSON.Deserialization.WRAP_EXCEPTIONS: false
170#      JSON.Deserialization.FAIL_ON_UNEXPECTED_VIEW_PROPERTIES: false
171#      JSON.Deserialization.FAIL_ON_UNKNOWN_INJECT_VALUE: false
172#      JSON.Deserialization.ACCEPT_SINGLE_VALUE_AS_ARRAY: false
173#      JSON.Deserialization.UNWRAP_SINGLE_VALUE_ARRAYS: false
174#      JSON.Deserialization.UNWRAP_ROOT_VALUE: false
175#      JSON.Deserialization.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT: false
176#      JSON.Deserialization.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT: false
177#      JSON.Deserialization.ACCEPT_FLOAT_AS_INT: false
178#      JSON.Deserialization.READ_ENUMS_USING_TO_STRING: false
179#      JSON.Deserialization.READ_UNKNOWN_ENUM_VALUES_AS_NULL: false
180#      JSON.Deserialization.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE: false
181#      JSON.Deserialization.READ_DATE_TIMESTAMPS_AS_NANOSECONDS: false
182#      JSON.Deserialization.ADJUST_DATES_TO_CONTEXT_TIME_ZONE: false
183#      JSON.Deserialization.EAGER_DESERIALIZER_FETCH: false
184#      JSON.Serialization.WRAP_ROOT_VALUE: false
185#      JSON.Serialization.INDENT_OUTPUT: false
186#      JSON.Serialization.FAIL_ON_EMPTY_BEANS: false
187#      JSON.Serialization.FAIL_ON_SELF_REFERENCES: false
188#      JSON.Serialization.WRAP_EXCEPTIONS: false
189#      JSON.Serialization.FAIL_ON_UNWRAPPED_TYPE_IDENTIFIERS: false
190#      JSON.Serialization.WRITE_SELF_REFERENCES_AS_NULL: false
191#      JSON.Serialization.CLOSE_CLOSEABLE: false
192#      JSON.Serialization.FLUSH_AFTER_WRITE_VALUE: false
193#      JSON.Serialization.WRITE_DATES_AS_TIMESTAMPS: false
194#      JSON.Serialization.WRITE_DATE_KEYS_AS_TIMESTAMPS: false
195#      JSON.Serialization.WRITE_DATES_WITH_ZONE_ID: false
196#      JSON.Serialization.WRITE_DATES_WITH_CONTEXT_TIME_ZONE: false
197#      JSON.Serialization.WRITE_DURATIONS_AS_TIMESTAMPS: false
198#      JSON.Serialization.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS: false
199#      JSON.Serialization.WRITE_ENUMS_USING_TO_STRING: false
200#      JSON.Serialization.WRITE_ENUMS_USING_INDEX: false
201#      JSON.Serialization.WRITE_ENUM_KEYS_USING_INDEX: false
202#      JSON.Serialization.WRITE_NULL_MAP_VALUES: false
203#      JSON.Serialization.WRITE_EMPTY_JSON_ARRAYS: false
204#      JSON.Serialization.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED: false
205#      JSON.Serialization.WRITE_BIGDECIMAL_AS_PLAIN: false
206#      JSON.Serialization.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS: false
207#      JSON.Serialization.ORDER_MAP_ENTRIES_BY_KEYS: false
208#      JSON.Serialization.FAIL_ON_ORDER_MAP_BY_INCOMPARABLE_KEY: false
209#      JSON.Serialization.EAGER_SERIALIZER_FETCH: false
210#      JSON.Serialization.USE_EQUALITY_FOR_OBJECT_ID: false
211#      JSON.Mapper.USE_ANNOTATIONS: false
212#      JSON.Mapper.USE_GETTERS_AS_SETTERS: false
213#      JSON.Mapper.PROPAGATE_TRANSIENT_MARKER: false
214#      JSON.Mapper.AUTO_DETECT_CREATORS: false
215#      JSON.Mapper.AUTO_DETECT_FIELDS: false
216#      JSON.Mapper.AUTO_DETECT_GETTERS: false
217#      JSON.Mapper.AUTO_DETECT_IS_GETTERS: false
218#      JSON.Mapper.AUTO_DETECT_SETTERS: false
219#      JSON.Mapper.REQUIRE_SETTERS_FOR_GETTERS: false
220#      JSON.Mapper.ALLOW_FINAL_FIELDS_AS_MUTATORS: false
221#      JSON.Mapper.INFER_PROPERTY_MUTATORS: false
222#      JSON.Mapper.INFER_CREATOR_FROM_CONSTRUCTOR_PROPERTIES: false
223#      JSON.Mapper.ALLOW_IS_GETTERS_FOR_NON_BOOLEAN: false
224#      JSON.Mapper.ALLOW_VOID_VALUED_PROPERTIES: false
225#      JSON.Mapper.CAN_OVERRIDE_ACCESS_MODIFIERS: false
226#      JSON.Mapper.OVERRIDE_PUBLIC_ACCESS_MODIFIERS: false
227#      JSON.Mapper.INVERSE_READ_WRITE_ACCESS: false
228#      JSON.Mapper.USE_STATIC_TYPING: false
229#      JSON.Mapper.USE_BASE_TYPE_AS_DEFAULT_IMPL: false
230#      JSON.Mapper.INFER_BUILDER_TYPE_BINDINGS: false
231#      JSON.Mapper.REQUIRE_TYPE_ID_FOR_SUBTYPES: false
232#      JSON.Mapper.DEFAULT_VIEW_INCLUSION: false
233#      JSON.Mapper.SORT_PROPERTIES_ALPHABETICALLY: false
234#      JSON.Mapper.SORT_CREATOR_PROPERTIES_FIRST: false
235#      JSON.Mapper.SORT_CREATOR_PROPERTIES_BY_DECLARATION_ORDER: false
236#      JSON.Mapper.ACCEPT_CASE_INSENSITIVE_PROPERTIES: false
237#      JSON.Mapper.ACCEPT_CASE_INSENSITIVE_ENUMS: false
238#      JSON.Mapper.ACCEPT_CASE_INSENSITIVE_VALUES: false
239#      JSON.Mapper.USE_WRAPPER_NAME_AS_PROPERTY_NAME: false
240#      JSON.Mapper.USE_STD_BEAN_NAMING: false
241#      JSON.Mapper.ALLOW_EXPLICIT_PROPERTY_RENAMING: false
242#      JSON.Mapper.FIX_FIELD_NAME_UPPER_CASE_PREFIX: false
243#      JSON.Mapper.ALLOW_COERCION_OF_SCALARS: false
244#      JSON.Mapper.IGNORE_DUPLICATE_MODULE_REGISTRATIONS: false
245#      JSON.Mapper.IGNORE_MERGE_FOR_UNMERGEABLE: false
246#      JSON.Mapper.BLOCK_UNSAFE_POLYMORPHIC_BASE_TYPES: false
247#      JSON.Mapper.APPLY_DEFAULT_VALUES: false
248#      JSON.Mapper.REQUIRE_HANDLERS_FOR_JAVA8_OPTIONALS: false
249#      JSON.Mapper.REQUIRE_HANDLERS_FOR_JAVA8_TIMES: false
250#      # Defines which properties of a java object should be included in the resulting JSON
251#      # [examples: ALWAYS, NON_NULL, NON_ABSENT, NON_EMPTY, NON_DEFAULT, CUSTOM, USE_DEFAULTS]
252#      JSON.Serialization.PROPERTY_INCLUSION: ""
253#      # Enable serialization of JSR310/JavaTime objects.
254#      JSON.Module.JavaTime: false
255#      # The username used for authentication by Basic, Digest or NTLM authentication.
256#      username: ""
257#      # The password used for authentication by Basic, Digest or NTLM authentication.
258#      password: ""
259#      # The Workstation that is used for making the NTLM Request (optional). Used by the NtlmAuthenticationFeature.
260#      NTLM.workstation: ""
261#      # The Active Directory Domain to authenticate against (optional). Used by the NtlmAuthenticationFeature.
262#      NTLM.domain: ""
263#      # The keystore key alias to use if the SSL connection to the REST service is configured to use client authentication.
264#      # This configuration can only be set in the REST Client configuration and cannot be configured in the REST Client call step.
265#      # By default no keystore key alias is definied.
266#      SSL.keyAlias: ""
267#      # Wether the client is exchanging sensitive data (e.g. access tokens) or not.
268#      # If set to 'true', the content won't be logged in tracing.
269#      SensitiveData: false
270#  
271
272# Web Service Clients are defined in ivy projects with a name.
273# Any configuration from those clients can be overridden by addressing the client with its name.
274WebServiceClients:
275#  # example ConfigurableWsClient
276#  exampleConfigurableWsClient:
277#    # Full qualified class names, that contribute WS-client call features, such as authentication.
278#    Features:
279#    # Properties that supply dynamic values for WS-client features.
280#    Properties:
281#    # Endpoint names, to URIs
282#    # [examples: myPort: - https://myCustomProdHost/hr/employee/soap]
283#    Endpoints:
284#  
285
286# Currently active business calendar for this application.
287BusinessCalendar: ""
288# Business calendars are organized as trees, with one root / default calendar and an arbitrary number of child calendars.
289# Child business calendars inherit the values of their parent. A parent can be the root calendar or any child calendar.
290# 
291# At least one root calendar needs to be defined. If non is configured, a root / default calendar will be created automatically
292# with following default values:
293# - Parent is empty
294# - First day of week is: Monday
295# - Working times are: 'morning: 8:00 - 12:00' and 'afternoon: 13:00 - 17:00'
296# 
297# You can reference a business calendars in a ivy projects by its name. E.g ivy.cal.get("myRootBusinessCalendar")
298# https://developer.axonivy.com/doc/13.2/engine-guide/configuration/advanced-configuration.html#business-calendar
299BusinessCalendars:
300#  # example BusinessCalendar
301#  exampleBusinessCalendar:
302#    # First day of the week.
303#    # If empty or not existing the parent calendar's value is inherited.
304#    # If not defined by any parent the value is retrieved from the current locale settings
305#    # [enum: monday, tuesday, wednesday, thursday, friday, saturday, sunday]
306#    FirstDayOfWeek: ""
307#    # Name-value pairs of non-working days.
308#    # 
309#    # Yearly days:
310#    # Recurring non-working days during a year, falling on the same date, e.g. Jan. 1 or Christmas.
311#    # Format: MM-dd, e.g. 01-01 (New Year), 12-25 (Christmas Day)
312#    # 
313#    # Relative Easter Days:
314#    # Recurring non-working days relative to Easter Sunday, e.g. Good Friday or Pentecost.
315#    # Format (case insensitive): easter +/- Number, e.g. 'easter - 2' (Good Friday), 'easter + 50' (Pentecost Monday)
316#    # 
317#    # Fixed Dates:
318#    # Once-off non-working days, e.g. a company celebration day or a special local public holiday.
319#    # Format: YYYY-MM-dd
320#    # [examples: "New Year": 01-01, "Christmas Day": 12-25, "Good Friday": easter - 2, "Easter Monday": easter + 1, "Pentecost Monday": easter + 50, "50 Years Ivyteam": 2043-04-07]
321#    FreeDays:
322#      # End of days that are always off
323#      # [enum: monday, tuesday, wednesday, thursday, friday, saturday, sunday]
324#      # [examples: sunday]
325#      WeekendEnd: ""
326#      # Start of days that are always off
327#      # [enum: monday, tuesday, wednesday, thursday, friday, saturday, sunday]
328#      # [examples: saturday]
329#      WeekendStart: ""
330#    
331#    # Name of the parent business calendar.
332#    # If empty or not existing this business calendar will be the root calendar for this application.
333#    # Only one root calendar is allowed.
334#    Parent:
335#    # Name-value pairs of working times during a business day.
336#    # At least one working time needs to be defined here or in any of the parents for business calendar calculations to work.
337#    # 
338#    # Warning: Ensure that your working times in your calendar tree do not overlap.
339#    # Otherwise the business calendar calculations may not work correctly!
340#    # 
341#    # Value format is : HH:mm-HH:mm
342#    # [examples: myMorning: 8:00-12:00, myAfternoon: 13:00-17:00]
343#    WorkingTimes:
344#  
345
346# Variables are defined in ivy projects.
347# All of them can be overridden.
348Variables: