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: