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: