<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.dafne.bi-services.sk/index.php?action=history&amp;feed=atom&amp;title=Application_configuration</id>
	<title>Application configuration - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dafne.bi-services.sk/index.php?action=history&amp;feed=atom&amp;title=Application_configuration"/>
	<link rel="alternate" type="text/html" href="https://wiki.dafne.bi-services.sk/index.php?title=Application_configuration&amp;action=history"/>
	<updated>2026-10-23T19:25:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.4</generator>
	<entry>
		<id>https://wiki.dafne.bi-services.sk/index.php?title=Application_configuration&amp;diff=57&amp;oldid=prev</id>
		<title>Dafne: Documentation import</title>
		<link rel="alternate" type="text/html" href="https://wiki.dafne.bi-services.sk/index.php?title=Application_configuration&amp;diff=57&amp;oldid=prev"/>
		<updated>2026-08-06T13:36:43Z</updated>

		<summary type="html">&lt;p&gt;Documentation import&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This page covers the configuration held in the application&amp;#039;s own files, as opposed to the repository settings described in [[System settings]]. It is read at start-up, so &amp;#039;&amp;#039;&amp;#039;changes require a restart&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Dafne consists of two deployable applications, each configured separately:&lt;br /&gt;
* the &amp;#039;&amp;#039;&amp;#039;web application&amp;#039;&amp;#039;&amp;#039;, which serves the GUI and the REST API&lt;br /&gt;
* the &amp;#039;&amp;#039;&amp;#039;executor&amp;#039;&amp;#039;&amp;#039;, which plans scenarios and runs tasks&lt;br /&gt;
&lt;br /&gt;
Both use Spring Boot configuration, so any value can also be supplied as an environment variable or command-line argument rather than being written into a file. Profiles select between variants — the container deployment, for instance, takes the database and directory settings from environment variables.&lt;br /&gt;
&lt;br /&gt;
== Web application ==&lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
The login method is chosen by the &amp;#039;&amp;#039;&amp;#039;active profile&amp;#039;&amp;#039;&amp;#039; rather than by a property:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Active profile !! Login method&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;entra&amp;lt;/code&amp;gt; || Microsoft Entra&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ldap&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ldapad&amp;lt;/code&amp;gt; || LDAP / Active Directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;none of the above&amp;#039;&amp;#039; || Database — accounts held by Dafne&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For the directory methods, the connection is configured under &amp;lt;code&amp;gt;ldap.*&amp;lt;/code&amp;gt;: the server URL, the manager DN and password, the DN patterns, the search base and the domain.&lt;br /&gt;
&lt;br /&gt;
Directory groups are mapped onto Dafne roles with &amp;lt;code&amp;gt;ldap.privilegeMapping&amp;lt;/code&amp;gt;, which maps a group name to &amp;lt;code&amp;gt;ROLE_USER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ROLE_ADMIN&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RERUN&amp;lt;/code&amp;gt;. Under a directory method this mapping — not the Users screen — is where authorisation is decided. See [[Users and roles]].&lt;br /&gt;
&lt;br /&gt;
=== Application options ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dafne.password-encryption-key&amp;lt;/code&amp;gt; || Key used to encrypt passwords stored in the metadata repository. &amp;#039;&amp;#039;&amp;#039;Change this from the shipped default&amp;#039;&amp;#039;&amp;#039; on any real installation, and keep it consistent between the web application and the executor.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dafne.executor-db-process-name&amp;lt;/code&amp;gt; || The process name by which a running executor is recognised.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dafne.monitor-view-level&amp;lt;/code&amp;gt; || Whether the Monitor opens at group or task level.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dafne.default-page&amp;lt;/code&amp;gt; || The page shown after login. Only &amp;#039;&amp;#039;Dashboard&amp;#039;&amp;#039; changes the behaviour; anything else shows the Monitor.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dafne.double-pane-min-width&amp;lt;/code&amp;gt; || Width in pixels at which the Monitor switches between the one-pane and two-pane layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dafne.mobile-enabled&amp;lt;/code&amp;gt; || Whether the mobile view is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dafne.task-history-statistics-days&amp;lt;/code&amp;gt; || How many days of history the task statistics cover.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dafne.lock-cleaner-delay&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;dafne.lock-cleaner-max-age&amp;lt;/code&amp;gt; || How often abandoned edit locks are cleaned up, and how old a lock must be to qualify. See [[Authoring items#Check-out locks]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dafne.repair-flyway&amp;lt;/code&amp;gt; || Repairs schema-migration checksums at start-up.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Database and schema ===&lt;br /&gt;
The repository connection is a standard Spring datasource. Schema migrations are applied automatically at start-up.&lt;br /&gt;
&lt;br /&gt;
=== Session ===&lt;br /&gt;
The GUI session timeout is set under &amp;lt;code&amp;gt;server.servlet.session.timeout&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Executor ==&lt;br /&gt;
The executor&amp;#039;s own configuration is grouped under &amp;lt;code&amp;gt;dafne.executor&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;dafne.notification&amp;lt;/code&amp;gt;. Most of it is timing, and the defaults are sensible; the values below are the ones worth knowing about.&lt;br /&gt;
&lt;br /&gt;
=== Timing ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Controls&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;execution-interval&amp;lt;/code&amp;gt; || How often the executor looks for a task to start.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;execution-idle-delay&amp;lt;/code&amp;gt; || How long it waits when there is nothing to do.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;planning-period&amp;lt;/code&amp;gt; || How often scenarios are evaluated for planning.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cancel-interval&amp;lt;/code&amp;gt; || How often cancel requests are processed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;shutdown-check-interval&amp;lt;/code&amp;gt; || How often a pending shutdown is re-checked while waiting for running tasks.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The planning period is the one that shows up operationally: it sets the granularity with which a scenario can trigger, and a scenario cannot react faster than this regardless of its own polling frequency.&lt;br /&gt;
&lt;br /&gt;
=== Retention and archiving ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Controls&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;archiving-interval&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;archiving-initial-delay&amp;lt;/code&amp;gt; || When archiving runs. The retention period itself is the &amp;#039;&amp;#039;&amp;#039;Archive limit&amp;#039;&amp;#039;&amp;#039; repository setting — see [[System settings]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dblog-retention-days&amp;lt;/code&amp;gt; and its interval and delay || How long the database log is kept.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;deleted-items-retention-days&amp;lt;/code&amp;gt; and its interval and delay || How long deleted definitions remain recoverable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Execution behaviour ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Controls&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;effective-priority-calculation-depth-limit&amp;lt;/code&amp;gt; || How deep priority inheritance is followed through the dependency graph. See [[Prioritization]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;stalled-task-grace-period&amp;lt;/code&amp;gt; || How long a task may appear stalled before it is treated as such.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ssh-connection-timeout&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ssh-connection-auth-try-count&amp;lt;/code&amp;gt; || SSH connection behaviour.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;db-task.name-prefix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;db-task.max-message-count&amp;lt;/code&amp;gt; || Naming of database sessions opened for tasks, and how many messages are retained per run.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The priority depth limit is worth being aware of on a large model: priority inheritance stops being applied beyond it, so a high-priority task at the end of a very long chain will not lift everything behind it.&lt;br /&gt;
&lt;br /&gt;
=== Notification ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notification.smtp-server&amp;lt;/code&amp;gt; || SMTP server used for email notifications.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notification.smtp-from&amp;lt;/code&amp;gt; || Default sender.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notification.smtp-subject&amp;lt;/code&amp;gt; || Default subject.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notification.sending-period&amp;lt;/code&amp;gt; || How often queued notifications are sent.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notification.keep-details&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;notification.smtp-attachment-filename&amp;lt;/code&amp;gt; || Whether failure detail is attached, and under what filename.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SMTP configuration lives &amp;#039;&amp;#039;&amp;#039;here&amp;#039;&amp;#039;&amp;#039;, not in the repository settings. On the previous version of the product it was a repository setting, and that is a common source of confusion when configuring email notification for the first time. The per-notification addresses and subject are still set on the notification itself; see [[edit-notification]].&lt;br /&gt;
&lt;br /&gt;
== Health checks ==&lt;br /&gt;
Both applications expose a health endpoint for monitoring. The executor additionally runs a small HTTP listener, used primarily for that purpose.&lt;br /&gt;
&lt;br /&gt;
== Practical notes ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Keep the encryption key consistent&amp;#039;&amp;#039;&amp;#039; between the web application and the executor, and treat it as a secret. Passwords in the repository are encrypted with it.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Prefer environment variables to edited files&amp;#039;&amp;#039;&amp;#039; for anything environment-specific — it keeps one artefact deployable everywhere.&lt;br /&gt;
* Remember the division of responsibility: &amp;#039;&amp;#039;&amp;#039;Archive limit&amp;#039;&amp;#039;&amp;#039; is a repository setting while the archiving schedule is executor configuration, and both are needed to reason about retention.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Configuration]]&lt;br /&gt;
* [[System settings]]&lt;br /&gt;
* [[Users and roles]]&lt;br /&gt;
* [[Executor control]]&lt;/div&gt;</summary>
		<author><name>Dafne</name></author>
		
	</entry>
</feed>