app.yaml

[engineDir]/configuration/reference/app.yaml

  1# yaml-language-server: $schema=https://json-schema.axonivy.com/@app.yaml.version.major.minor@/app/app@app.yaml.version.patch.rev@.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/14.0/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/14.0/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/14.0/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/14.0/engine-guide/configuration/advanced-configuration.html#overriding-configuration
 34#
 35
 36# Defines a project containing overriding SubProcesses, HtmlDialogs or CMS entries for a dependent project.
 37# This allows you to customize generic solutions with minimal effort.
 38# The overriding project must be declared in the format <group-id>:<project-id> (e.g. ch.ivyteam.ivy:overrideProject).
 39# These identifiers can be copied from the ivy project deployment definition (pom.xml).
 40# https://developer.axonivy.com/doc/14.0/getting-productive/workflow/overrides/index.html
 41OverrideProject: ""
 42Data:
 43  # DEPRECATED: All runtime data will be stored by default in Data.Directory specified in ivy.yaml. Use Data.Directory
 44  # to change the location of stored files.
 45  # 
 46  # Application folder where application files are stored. It overrides the root file folder setting.
 47  # A change in this setting will NOT automatically move existing application files to the new location, so you need to move files manually.
 48  # Absolute and relative (to the engine root directory) paths are supported.
 49  # If not set the files will be stored under the path Data.Directory configured in ivy.yaml.
 50  # [restart required] for existing apps
 51  FilesDirectory: ""
 52
 53StandardProcess:
 54  # Standard processes are a set of predefined processes, which you can customize in your ivy project.
 55  # To enable these custom processes, the library id of the ivy project must be specified here.
 56  # The library id is <group-id>:<project-id> from the ivy project deployment definition.
 57  # e.g the library id of the portal template is "ch.ivyteam.ivy.project.portal:portalTemplate"
 58  # The default is 'auto' which means auto detection of standard process in your application
 59  # https://developer.axonivy.com/doc/14.0/getting-productive/user-interface/default-pages/index.html
 60  DefaultPages: auto
 61
 62Jsf:
 63  # JSF Primefaces Theme that is used by HTML Dialogs
 64  # Standard themes:
 65  # saga
 66  # Freya themes:
 67  # freya-ivy-light, freya-ivy-dark
 68  # This configuration has no effect if theme is specified in the xhtml template.
 69  # https://developer.axonivy.com/doc/14.0/getting-productive/user-interface/user-dialogs/html-dialog-themes.html
 70  primefaces.theme: freya-ivy-light
 71
 72# Databases are defined in ivy projects with a name.
 73# Connection details from those databases can be overridden by addressing the database by name.
 74Databases:
 75#  # example Database
 76#  exampleDatabase:
 77#    # JDBC Url to use for connections.
 78#    # [examples: jdbc:{vendor}://{host}:{port}/{dbName}, jdbc:postgresql://pghost/prod, jdbc:mysql://mysqlhost/erpTstaging, jdbc:sqlserver://microsoft-host;databaseName=stammdaten]
 79#    Url: ""
 80#    # JDBC driver Name.
 81#    # [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]
 82#    Driver: ""
 83#    UserName: ""
 84#    # Secret password, should be stored encrypted. Encrypted values have a ${decrypt:} prefix
 85#    # [password]
 86#    Password: ""
 87#    MaxConnections:
 88#    # Driver specific custom properties
 89#    Properties:
 90#  
 91
 92# Rest Clients are defined in ivy projects with a name.
 93# Any configuration from those clients can be overridden by addressing the client by name.
 94RestClients:
 95#  # example AppRestClient
 96#  exampleAppRestClient:
 97#    Url: ""
 98#    # Full qualified class names, that contribute REST-client features, such as authentication.
 99#    # [examples: ch.ivyteam.ivy.rest.client.mapper.JsonFeature, ch.ivyteam.ivy.rest.client.security.CsrfHeaderFeature, org.glassfish.jersey.media.multipart.MultiPartFeature, ch.ivyteam.ivy.rest.client.authentication.HttpBasicAuthenticationFeature, ch.ivyteam.ivy.rest.client.authentication.HttpBasicOrDigestAuthenticationFeature, ch.ivyteam.ivy.rest.client.authentication.HttpDigestAuthenticationFeature]
100#    Features:
101#    # Properties that supply dynamic values for REST-client features.
102#    Properties:
103#      jersey.config.client.followRedirects: ""
104#      # Read timeout interval, in milliseconds.
105#      jersey.config.client.readTimeout:
106#      # Connect timeout interval, in milliseconds.
107#      jersey.config.client.connectTimeout:
108#      jersey.config.client.chunkedEncodingSize: ""
109#      jersey.config.client.async.threadPoolSize: ""
110#      jersey.config.client.backgroundScheduler.threadPoolSize: ""
111#      jersey.config.client.ConnectorConfiguration: ""
112#      jersey.config.client.useEncoding: ""
113#      jersey.config.client.ignoreExceptionResponse: ""
114#      jersey.config.client.disableAutoDiscovery: ""
115#      jersey.config.client.contentLength.buffer: ""
116#      jersey.config.client.disableJsonBinding: ""
117#      jersey.config.client.disableJsonProcessing: ""
118#      jersey.config.client.disableMetainfServicesLookup: ""
119#      jersey.config.client.disableMoxyJson: ""
120#      jersey.config.client.suppressHttpComplianceValidation: ""
121#      jersey.config.client.digestAuthUriCacheSizeLimit: ""
122#      jersey.config.client.proxy.uri: ""
123#      jersey.config.client.proxy.username: ""
124#      jersey.config.client.proxy.password: ""
125#      jersey.config.client.request.entity.processing: ""
126#      jersey.config.client.request.expect.100.continue.processing: ""
127#      jersey.config.client.request.expect.100.continue.threshold.size: ""
128#      jersey.config.client.uri.query.param.style: ""
129#      # The fully-qualified class name for the connector provider to use. Ivy uses the Apache5ConnectorProvider.
130#      # Implementations of `org.glassfish.jersey.client.spi.ConnectorProvider` are valid.
131#      # Only has an effect when set in the REST Client Editor, cannot be changed during execution.
132#      # [examples: org.glassfish.jersey.client.HttpUrlConnectorProvider]
133#      jersey.config.client.connector.provider: org.glassfish.jersey.apache5.connector.Apache5ConnectorProvider
134#      jersey.config.client.snihostname: ""
135#      jersey.config.client.ssl.context.supplier: ""
136#      # Maximum number of connections to pool.
137#      # Only has an effect if no or the Apache connector provider is set.
138#      # Only has an effect when set in the REST Client Editor, cannot be changed during execution.
139#      jersey.client.pool.maxConnections:
140#      # Bytes to record of the outgoing and incoming entity
141#      jersey.config.client.logging.entity.maxSize:
142#      JSON.Deserialization.USE_BIG_DECIMAL_FOR_FLOATS: false
143#      JSON.Deserialization.USE_BIG_INTEGER_FOR_INTS: false
144#      JSON.Deserialization.USE_LONG_FOR_INTS: false
145#      JSON.Deserialization.USE_JAVA_ARRAY_FOR_JSON_ARRAY: false
146#      JSON.Deserialization.USE_NULL_FOR_MISSING_REFERENCE_VALUES: false
147#      JSON.Deserialization.USE_NULL_FOR_EMPTY_UNWRAPPED: false
148#      # Feature that determines whether encountering of unknown properties
149#      # (those that do not map to a property, and there is not "any setter" or handler that can handle it)
150#      # should result in a failure or not.
151#      JSON.Deserialization.FAIL_ON_UNKNOWN_PROPERTIES: false
152#      JSON.Deserialization.FAIL_ON_NULL_FOR_PRIMITIVES: false
153#      JSON.Deserialization.FAIL_ON_INVALID_SUBTYPE: false
154#      JSON.Deserialization.IGNORE_ABSTRACT_TYPES_FOR_DEDUCTION: false
155#      JSON.Deserialization.FAIL_ON_READING_DUP_TREE_KEY: false
156#      JSON.Deserialization.FAIL_ON_IGNORED_PROPERTIES: false
157#      JSON.Deserialization.FAIL_ON_UNRESOLVED_OBJECT_IDS: false
158#      JSON.Deserialization.FAIL_ON_MISSING_CREATOR_PROPERTIES: false
159#      JSON.Deserialization.FAIL_ON_NULL_CREATOR_PROPERTIES: false
160#      JSON.Deserialization.FAIL_ON_MISSING_EXTERNAL_TYPE_ID_PROPERTY: false
161#      JSON.Deserialization.FAIL_ON_TRAILING_TOKENS: false
162#      JSON.Deserialization.FAIL_ON_SUBTYPE_CLASS_NOT_REGISTERED: false
163#      JSON.Deserialization.WRAP_EXCEPTIONS: false
164#      JSON.Deserialization.FAIL_ON_UNEXPECTED_VIEW_PROPERTIES: false
165#      JSON.Deserialization.FAIL_ON_UNKNOWN_INJECT_VALUE: false
166#      JSON.Deserialization.ACCEPT_SINGLE_VALUE_AS_ARRAY: false
167#      JSON.Deserialization.UNWRAP_SINGLE_VALUE_ARRAYS: false
168#      JSON.Deserialization.UNWRAP_ROOT_VALUE: false
169#      JSON.Deserialization.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT: false
170#      JSON.Deserialization.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT: false
171#      JSON.Deserialization.ACCEPT_FLOAT_AS_INT: false
172#      JSON.Deserialization.EAGER_DESERIALIZER_FETCH: false
173#      JSON.Serialization.WRAP_ROOT_VALUE: false
174#      JSON.Serialization.INDENT_OUTPUT: false
175#      JSON.Serialization.FAIL_ON_EMPTY_BEANS: false
176#      JSON.Serialization.FAIL_ON_SELF_REFERENCES: false
177#      JSON.Serialization.WRAP_EXCEPTIONS: false
178#      JSON.Serialization.FAIL_ON_UNWRAPPED_TYPE_IDENTIFIERS: false
179#      JSON.Serialization.WRITE_SELF_REFERENCES_AS_NULL: false
180#      JSON.Serialization.CLOSE_CLOSEABLE: false
181#      JSON.Serialization.FLUSH_AFTER_WRITE_VALUE: false
182#      JSON.Serialization.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS: false
183#      JSON.Serialization.WRITE_EMPTY_JSON_ARRAYS: false
184#      JSON.Serialization.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED: false
185#      JSON.Serialization.ORDER_MAP_ENTRIES_BY_KEYS: false
186#      JSON.Serialization.FAIL_ON_ORDER_MAP_BY_INCOMPARABLE_KEY: false
187#      JSON.Serialization.ORDER_SET_ELEMENTS: false
188#      JSON.Serialization.FAIL_ON_ORDER_SET_BY_INCOMPARABLE_ELEMENT: false
189#      JSON.Serialization.APPLY_JSON_INCLUDE_FOR_CONTAINERS: false
190#      JSON.Serialization.EAGER_SERIALIZER_FETCH: false
191#      JSON.Serialization.USE_EQUALITY_FOR_OBJECT_ID: false
192#      JSON.Mapper.USE_ANNOTATIONS: false
193#      JSON.Mapper.USE_GETTERS_AS_SETTERS: false
194#      JSON.Mapper.PROPAGATE_TRANSIENT_MARKER: false
195#      JSON.Mapper.REQUIRE_SETTERS_FOR_GETTERS: false
196#      JSON.Mapper.ALLOW_FINAL_FIELDS_AS_MUTATORS: false
197#      JSON.Mapper.INFER_PROPERTY_MUTATORS: false
198#      JSON.Mapper.INFER_CREATOR_FROM_CONSTRUCTOR_PROPERTIES: false
199#      JSON.Mapper.ALLOW_IS_GETTERS_FOR_NON_BOOLEAN: false
200#      JSON.Mapper.INFER_RECORD_GETTERS_FROM_COMPONENTS_ONLY: false
201#      JSON.Mapper.ALLOW_VOID_VALUED_PROPERTIES: false
202#      JSON.Mapper.DETECT_PARAMETER_NAMES: false
203#      JSON.Mapper.CAN_OVERRIDE_ACCESS_MODIFIERS: false
204#      JSON.Mapper.OVERRIDE_PUBLIC_ACCESS_MODIFIERS: false
205#      JSON.Mapper.INVERSE_READ_WRITE_ACCESS: false
206#      JSON.Mapper.USE_STATIC_TYPING: false
207#      JSON.Mapper.USE_BASE_TYPE_AS_DEFAULT_IMPL: false
208#      JSON.Mapper.INFER_BUILDER_TYPE_BINDINGS: false
209#      JSON.Mapper.REQUIRE_TYPE_ID_FOR_SUBTYPES: false
210#      JSON.Mapper.DEFAULT_VIEW_INCLUSION: false
211#      JSON.Mapper.SORT_PROPERTIES_ALPHABETICALLY: false
212#      JSON.Mapper.SORT_CREATOR_PROPERTIES_FIRST: false
213#      JSON.Mapper.SORT_PROPERTIES_BY_INDEX: false
214#      JSON.Mapper.ACCEPT_CASE_INSENSITIVE_PROPERTIES: false
215#      JSON.Mapper.ACCEPT_CASE_INSENSITIVE_ENUMS: false
216#      JSON.Mapper.ACCEPT_CASE_INSENSITIVE_VALUES: false
217#      JSON.Mapper.USE_WRAPPER_NAME_AS_PROPERTY_NAME: false
218#      JSON.Mapper.ALLOW_EXPLICIT_PROPERTY_RENAMING: false
219#      JSON.Mapper.FIX_FIELD_NAME_UPPER_CASE_PREFIX: false
220#      JSON.Mapper.ALLOW_COERCION_OF_SCALARS: false
221#      JSON.Mapper.WRAPPERS_DEFAULT_TO_NULL: false
222#      JSON.Mapper.IGNORE_MERGE_FOR_UNMERGEABLE: false
223#      JSON.Mapper.APPLY_DEFAULT_VALUES: false
224#      JSON.Mapper.USE_REAL_INCLUDE_NON_DEFAULT: false
225#      JSON.Mapper.EXTERNAL_TYPE_ID_ALWAYS_VISIBLE: false
226#      JSON.DateTime.ADJUST_DATES_TO_CONTEXT_TIME_ZONE: false
227#      JSON.DateTime.ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS: false
228#      JSON.DateTime.NORMALIZE_DESERIALIZED_ZONE_ID: false
229#      JSON.DateTime.ONE_BASED_MONTHS: false
230#      JSON.DateTime.READ_DATE_TIMESTAMPS_AS_NANOSECONDS: false
231#      JSON.DateTime.TRUNCATE_TO_MSECS_ON_READ: false
232#      JSON.DateTime.TRUNCATE_TO_MSECS_ON_WRITE: false
233#      JSON.DateTime.USE_TIME_ZONE_FOR_LENIENT_DATE_PARSING: false
234#      JSON.DateTime.WRITE_DATES_AS_TIMESTAMPS: false
235#      JSON.DateTime.WRITE_DATE_KEYS_AS_TIMESTAMPS: false
236#      JSON.DateTime.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS: false
237#      JSON.DateTime.WRITE_DATES_WITH_CONTEXT_TIME_ZONE: false
238#      JSON.DateTime.WRITE_DATES_WITH_ZONE_ID: false
239#      JSON.DateTime.WRITE_DURATIONS_AS_TIMESTAMPS: false
240#      JSON.DateTime.WRITE_UTC_AS_OFFSET: false
241#      JSON.Enum.READ_ENUM_KEYS_USING_INDEX: false
242#      JSON.Enum.FAIL_ON_NUMBERS_FOR_ENUMS: false
243#      JSON.Enum.READ_ENUMS_USING_TO_STRING: false
244#      JSON.Enum.READ_UNKNOWN_ENUM_VALUES_AS_NULL: false
245#      JSON.Enum.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE: false
246#      JSON.Enum.WRITE_ENUMS_TO_LOWERCASE: false
247#      JSON.Enum.WRITE_ENUMS_USING_TO_STRING: false
248#      JSON.Enum.WRITE_ENUMS_USING_INDEX: false
249#      JSON.Enum.WRITE_ENUM_KEYS_USING_INDEX: 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#      # The username used for authentication by Basic, Digest or NTLM authentication.
254#      username: ""
255#      # The password used for authentication by Basic, Digest or NTLM authentication.
256#      password: ""
257#      # The Workstation that is used for making the NTLM Request (optional, deprecated). Used by the NtlmAuthenticationFeature.
258#      NTLM.workstation: ""
259#      # The Active Directory Domain to authenticate against (optional, deprecated). Used by the NtlmAuthenticationFeature.
260#      NTLM.domain: ""
261#      # The keystore key alias to use if the SSL connection to the REST service is configured to use client authentication.
262#      # This configuration can only be set in the REST Client configuration and cannot be configured in the REST Client call step.
263#      # By default no keystore key alias is definied.
264#      SSL.keyAlias: ""
265#      # Wether the client is exchanging sensitive data (e.g. access tokens) or not.
266#      # If set to 'true', the content won't be logged in tracing.
267#      SensitiveData: false
268#  
269
270# Web Service Clients are defined in ivy projects with a name.
271# Any configuration from those clients can be overridden by addressing the client with its name.
272WebServiceClients:
273#  # example AppWsClient
274#  exampleAppWsClient:
275#    # Full qualified class names, that contribute WS-client call features, such as authentication.
276#    # [examples: ch.ivyteam.ivy.webservice.exec.cxf.feature.HttpBasicAuthenticationFeature, ch.ivyteam.ivy.webservice.exec.cxf.feature.HttpDigestAuthenticationFeature, ch.ivyteam.ivy.webservice.exec.cxf.feature.policy.IgnoreAllPoliciesFeature, ch.ivyteam.ivy.webservice.exec.cxf.feature.policy.IgnorePolicyFeature, ch.ivyteam.ivy.webservice.exec.cxf.feature.ProxyFeature, ch.ivyteam.ivy.webservice.exec.cxf.feature.WSSecurityAuthenticationFeature]
277#    Features:
278#    # Properties that supply dynamic values for Webservice-client features.
279#    Properties:
280#      # The username used to authenticate on the remote web service
281#      username: ""
282#      # The password used to authenticate on the remote web service
283#      password: ""
284#      # Whether to authenticate via NTLM by responding to auth-challenges (deprecated). Used by the ch.ivyteam.ivy.webservice.exec.cxf.feature.NTLMAuthenticationFeature
285#      NTLM.challenge: false
286#      # The Active Directory Domain to authenticate against (optional, deprecated). Used by the ch.ivyteam.ivy.webservice.exec.cxf.feature.NTLMAuthenticationFeature
287#      NTLM.domain: ""
288#      # The workstation (host) of the computer originating the request (optional, deprecated). Used by the ch.ivyteam.ivy.webservice.exec.cxf.feature.NTLMAuthenticationFeature
289#      NTLM.workstation: ""
290#      # The keystore key alias to use if the SSL connection to the web service is configured to use client authentication.
291#      SSL.keyAlias: ""
292#      # Defines how the session should be reused.OFF: No session handling is used.APPLICATION: Whenever the same service is invoked within an application, the existing session will be reused. In fact the cookies will be restored.
293#      # [examples: OFF, APPLICATION]
294#      session.handlingMode: ""
295#      # The name of the proxy server. Used by the ch.ivyteam.ivy.webservice.exec.cxf.feature.ProxyFeature
296#      proxy.host: ""
297#      # The port number of the proxy serverUsed by the ch.ivyteam.ivy.webservice.exec.cxf.feature.ProxyFeature
298#      proxy.port:
299#      # A list of hosts that should be reached directly, not going through the proxy.It is a list of patterns seperated by "|". The patterns may start or end with a '*' for wildcards.Used by the ch.ivyteam.ivy.webservice.exec.cxf.feature.ProxyFeature
300#      proxy.nonProxyHosts:
301#      # The name of the autentication scheme used for the proxy server. Used by the ch.ivyteam.ivy.webservice.exec.cxf.feature.ProxyFeature
302#      # [examples: basic, digest]
303#      proxy.auth.scheme: ""
304#      # The user name used to authenticate against the proxy server. Used by the ch.ivyteam.ivy.webservice.exec.cxf.feature.ProxyFeature
305#      proxy.auth.username: ""
306#      # The password used to authenticate against the proxy server. Used by the ch.ivyteam.ivy.webservice.exec.cxf.feature.ProxyFeature
307#      proxy.auth.password: ""
308#      # Whether to use the 'org.apache.hc.client5.http.async.HttpAsyncClient' or not. Otherwise 'java.net.HttpURLConnection' will be used.
309#      use.async.http.conduit: false
310#      # Specifies the amount of time, in milliseconds, that the consumer will attempt to establish a connection before it times out.
311#      jakarta.xml.ws.client.connectionTimeout:
312#      # Specifies the amount of time, in milliseconds, that the consumer will wait for a response before it times out.
313#      jakarta.xml.ws.client.receiveTimeout:
314#      # Defines the maximum recorded characters, when logging input and output payloads.Values should not exceed 2147483647
315#      log.limit:
316#      # Caching used webservice endpoints is a performance improvement. However, if you need unique feature instances you may disable this cache.
317#      endpoint.cache: false
318#      # A comma-separated list of policies to be disabled. A policy definition has the form 'namespaceURI:policy'. Used by the ch.ivyteam.ivy.webservice.exec.cxf.feature.policy.IgnorePolicyFeature
319#      # [examples: http://schemas.xmlsoap.org/ws/2005/07/securitypolicy:SupportingTokens]
320#      policy.disabled: ""
321#      # Xml schema validation of SOAP requests and responses
322#      # [examples: true, false, IN, REQUEST, OUT, RESPONSE, BOTH, NONE]
323#      schema-validation-enabled: NONE
324#    
325#    # Endpoint names, to URIs
326#    # [examples: myPort: - https://myCustomProdHost/hr/employee/soap]
327#    Endpoints:
328#  
329
330# Currently active business calendar for this application.
331BusinessCalendar: ""
332# Business calendars are organized as trees, with one root / default calendar and an arbitrary number of child calendars.
333# Child business calendars inherit the values of their parent. A parent can be the root calendar or any child calendar.
334# 
335# At least one root calendar needs to be defined. If non is configured, a root / default calendar will be created automatically
336# with following default values:
337# - Parent is empty
338# - First day of week is: Monday
339# - Working times are: 'morning: 8:00 - 12:00' and 'afternoon: 13:00 - 17:00'
340# 
341# You can reference a business calendars in a ivy projects by its name. E.g ivy.cal.get("myRootBusinessCalendar")
342# https://developer.axonivy.com/doc/14.0/engine-guide/configuration/advanced-configuration.html#business-calendar
343BusinessCalendars:
344#  # example BusinessCalendar
345#  exampleBusinessCalendar:
346#    # First day of the week.
347#    # If empty or not existing the parent calendar's value is inherited.
348#    # If not defined by any parent the value is retrieved from the current locale settings
349#    # [enum: monday, tuesday, wednesday, thursday, friday, saturday, sunday]
350#    FirstDayOfWeek: ""
351#    # Name-value pairs of non-working days.
352#    # 
353#    # Yearly days:
354#    # Recurring non-working days during a year, falling on the same date, e.g. Jan. 1 or Christmas.
355#    # Format: MM-dd, e.g. 01-01 (New Year), 12-25 (Christmas Day)
356#    # 
357#    # Relative Easter Days:
358#    # Recurring non-working days relative to Easter Sunday, e.g. Good Friday or Pentecost.
359#    # Format (case insensitive): easter +/- Number, e.g. 'easter - 2' (Good Friday), 'easter + 50' (Pentecost Monday)
360#    # 
361#    # Fixed Dates:
362#    # Once-off non-working days, e.g. a company celebration day or a special local public holiday.
363#    # Format: YYYY-MM-dd
364#    # [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]
365#    FreeDays:
366#      # End of days that are always off
367#      # [enum: monday, tuesday, wednesday, thursday, friday, saturday, sunday]
368#      # [examples: sunday]
369#      WeekendEnd: ""
370#      # Start of days that are always off
371#      # [enum: monday, tuesday, wednesday, thursday, friday, saturday, sunday]
372#      # [examples: saturday]
373#      WeekendStart: ""
374#    
375#    # Name of the parent business calendar.
376#    # If empty or not existing this business calendar will be the root calendar for this application.
377#    # Only one root calendar is allowed.
378#    Parent:
379#    # Name-value pairs of working times during a business day.
380#    # At least one working time needs to be defined here or in any of the parents for business calendar calculations to work.
381#    # 
382#    # Warning: Ensure that your working times in your calendar tree do not overlap.
383#    # Otherwise the business calendar calculations may not work correctly!
384#    # 
385#    # Value format is : HH:mm-HH:mm
386#    # [examples: myMorning: 8:00-12:00, myAfternoon: 13:00-17:00]
387#    WorkingTimes:
388#  
389
390# Variables are defined in ivy projects.
391# All of them can be overridden.
392Variables: