-
-
Notifications
You must be signed in to change notification settings - Fork 162
Configuration
Wexflow needs zero-configuration. However, if you want to change the configuration you can read this page.
You can configure Wexflow Server from C:\Program Files\Wexflow\Wexflow.Server.exe.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<appSettings>
<add key="WexflowSettingsFile" value="C:\Wexflow\Wexflow.xml"/>
<!-- LogLevel: Debug | All | Severely | Minimum | None -->
<add key="LogLevel" value="All"/>
<add key="WexflowServicePort" value="8000"/>
<add key="SuperAdminUsername" value="admin"/>
<add key="EnableWorkflowsHotFolder" value="false"/>
<add key="EnableRecordsHotFolder" value="true"/>
<add key="EnableEmailNotifications" value="false"/>
<add key="DateTimeFormat" value="dd-MM-yyyy HH:mm:ss"/>
<add key="Smtp.Host" value="smtp.gmail.com"/>
<add key="Smtp.Port" value="587"/>
<add key="Smtp.EnableSsl" value="true"/>
<add key="Smtp.User" value="user"/>
<add key="Smtp.Password" value="password"/>
<add key="Smtp.From" value="user"/>
<add key="ClientSettingsProvider.ServiceUri" value=""/>
</appSettings>
<log4net>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="Wexflow.log"/>
<encoding value="utf-8"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMMdd"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %5level [%thread] - %message%newline"/>
</layout>
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="RollingFile"/>
</root>
</log4net>
...
</configuration>
LogLevel options:
- Debug: All logs and debug logs.
- All: All logs without debug logs (Default).
- Severely: Only last workflow log and error logs.
- Minimum: Only last workflow log.
- None: No logs.
You can configure Wexflow Server from Wexflow.Server/appsettings.json:
{
"WexflowSettingsFile": "C:\\Wexflow-netcore\\Wexflow.xml",
"LogLevel": "All",
"WexflowServicePort": 8000,
"SuperAdminUsername": "admin",
"EnableWorkflowsHotFolder": false,
"EnableRecordsHotFolder": true,
"EnableEmailNotifications": false,
"DateTimeFormat": "dd-MM-yyyy HH:mm:ss", /* Date and time format in the backend. */
"Smtp.Host": "smtp.gmail.com",
"Smtp.Port": 587,
"Smtp.EnableSsl": true,
"Smtp.User": "user",
"Smtp.Password": "password",
"Smtp.From": "user"
}
Wexflow.xml is the main configuration file of Wexflow server. Its path can be configured from C:\Program Files\Wexflow\Wexflow.Server.exe.config for the .NET version and from Wexflow.Server\appsettings.json for the .NET Core version.
For the .NET version, Wexflow.xml is located in: C:\Wexflow\Wexflow.xml
Below is the configuration file Wexflow.xml for the .NET version:
<?xml version="1.0" encoding="UTF-8" ?>
<Wexflow>
<Setting name="workflowsFolder" value="C:\Wexflow\Workflows" />
<Setting name="recordsFolder" value="C:\Wexflow\Records" />
<Setting name="recordsHotFolder" value="C:\Wexflow\Records\_HotFolder" />
<Setting name="tempFolder" value="C:\Wexflow\Temp" />
<Setting name="tasksFolder" value="C:\Wexflow\Tasks" />
<Setting name="approvalFolder" value="C:\Wexflow\Approval" />
<Setting name="xsd" value="C:\Wexflow\Workflow.xsd" />
<Setting name="tasksNamesFile" value="C:\Wexflow\TasksNames.json" />
<Setting name="tasksSettingsFile" value="C:\Wexflow\TasksSettings.json" />
<Setting name="globalVariablesFile" value="C:\Wexflow\GlobalVariables.xml" />
<!-- SQLite or MongoDB or SQLServer or PostgreSQL or MySQL or LiteDB or Oracle -->
<Setting name="dbType" value="SQLite" />
<!-- SQLite -->
<Setting name="connectionString" value="Data Source=C:\Wexflow\Database\Wexflow.sqlite;Version=3;" />
<!-- MongoDB -->
<!--<Setting name="connectionString" value="Database=wexflow;MongoUrl=mongodb://localhost:27017;EnabledSslProtocols=false;SslProtocols=None" />-->
<!-- SQLServer -->
<!--<Setting name="connectionString" value="Server=localhost;Trusted_Connection=True;Database=wexflow;" />-->
<!-- PostgreSQL -->
<!--<Setting name="connectionString" value="Server=127.0.0.1;User Id=postgres;Password=pwd;Database=wexflow;Port=5432" />-->
<!-- MySQL -->
<!--<Setting name="connectionString" value="Server=localhost;Database=wexflow;Uid=root;Pwd=pwd;Port=3306" />-->
<!-- LiteDB -->
<!--<Setting name="connectionString" value="Filename=C:\Wexflow\Database\Wexflow.db; Connection=direct" />-->
<!-- Oracle -->
<!--<Setting name="connectionString" value="Data Source=localhost:1521/wexflow;User Id=SYSTEM;Password=pwd;" />-->
</Wexflow>
Wexflow ships with 6 persistence providers. You can choose from the following dbType
options:
- SQLite (Default)
- MongoDB
- SQLServer
- PostgreSQL
- MySQL
- LiteDB
If you change the persistence provider, don't forget to update connectionString
setting.
For the .NET Core version on Windows, Wexflow.xml is located in: C:\Wexflow-netcore\Wexflow.xml
Below is the configuration file Wexflow.xml for the .NET Core version:
<?xml version="1.0" encoding="UTF-8" ?>
<Wexflow>
<Setting name="workflowsFolder" value="C:\Wexflow-netcore\Workflows" />
<Setting name="recordsFolder" value="C:\Wexflow-netcore\Records" />
<Setting name="recordsHotFolder" value="C:\Wexflow-netcore\Records\_HotFolder" />
<Setting name="tempFolder" value="C:\Wexflow-netcore\Temp" />
<Setting name="tasksFolder" value="C:\Wexflow-netcore\Tasks" />
<Setting name="approvalFolder" value="C:\Wexflow-netcore\Approval" />
<Setting name="xsd" value="C:\Wexflow-netcore\Workflow.xsd" />
<Setting name="tasksNamesFile" value="C:\Wexflow-netcore\TasksNames.json" />
<Setting name="tasksSettingsFile" value="C:\Wexflow-netcore\TasksSettings.json" />
<Setting name="globalVariablesFile" value="C:\Wexflow-netcore\GlobalVariables.xml" />
<!-- SQLite or MongoDB or SQLServer or PostgreSQL or MySQL or LiteDB or Oracle -->
<Setting name="dbType" value="SQLite" />
<!-- SQLite -->
<Setting name="connectionString" value="Data Source=C:\Wexflow-netcore\Database\Wexflow.sqlite;Version=3;" />
<!-- MongoDB -->
<!--<Setting name="connectionString" value="Database=wexflow_netcore;MongoUrl=mongodb://localhost:27017;EnabledSslProtocols=false;SslProtocols=None" />-->
<!-- SQLServer -->
<!--<Setting name="connectionString" value="Server=localhost;Trusted_Connection=True;Database=wexflow_netcore;" />-->
<!-- PostgreSQL -->
<!--<Setting name="connectionString" value="Server=127.0.0.1;User Id=postgres;Password=pwd;Database=wexflow_netcore;Port=5432" />-->
<!-- MySQL -->
<!--<Setting name="connectionString" value="Server=localhost;Database=wexflow_netcore;Uid=root;Pwd=pwd;Port=3306" />-->
<!-- LiteDB -->
<!--<Setting name="connectionString" value="Filename=C:\Wexflow-netcore\Database\Wexflow.db; Connection=direct" />-->
<!-- Oracle -->
<!--<Setting name="connectionString" value="Data Source=localhost:1521/wexflownetcore;User Id=SYSTEM;Password=pwd;" />-->
</Wexflow>
For the .NET Core version on Linux, Wexflow.xml is located in: /opt/wexflow/Wexflow/Wexflow.xml
Below is the configuration file Wexflow.xml for the .NET Core version:
<?xml version="1.0" encoding="UTF-8" ?>
<Wexflow>
<Setting name="workflowsFolder" value="/opt/wexflow/Wexflow/Workflows" />
<Setting name="recordsFolder" value="/opt/wexflow/Wexflow/Records" />
<Setting name="recordsHotFolder" value="/opt/wexflow/Wexflow/Records/_HotFolder" />
<Setting name="tempFolder" value="/opt/wexflow/Wexflow/Temp" />
<Setting name="tasksFolder" value="/opt/wexflow/Wexflow/Tasks" />
<Setting name="approvalFolder" value="/opt/wexflow/Wexflow/Approval" />
<Setting name="xsd" value="/opt/wexflow/Wexflow/Workflow.xsd" />
<Setting name="tasksNamesFile" value="/opt/wexflow/Wexflow/TasksNames.json" />
<Setting name="tasksSettingsFile" value="/opt/wexflow/Wexflow/TasksSettings.json" />
<Setting name="globalVariablesFile" value="/opt/wexflow/Wexflow/GlobalVariables.xml" />
<!-- SQLite or MongoDB or SQLServer or PostgreSQL or MySQL or LiteDB or Oracle -->
<Setting name="dbType" value="SQLite" />
<!-- SQLite -->
<Setting name="connectionString" value="Data Source=/opt/wexflow/Wexflow/Database/Wexflow.sqlite;Version=3;" />
<!-- MongoDB -->
<!--<Setting name="connectionString" value="Database=wexflow_netcore;MongoUrl=mongodb://localhost:27017;EnabledSslProtocols=false;SslProtocols=None" />-->
<!-- SQLServer -->
<!--<Setting name="connectionString" value="Server=localhost;Trusted_Connection=True;Database=wexflow_netcore;" />-->
<!-- PostgreSQL -->
<!--<Setting name="connectionString" value="Server=127.0.0.1;User Id=postgres;Password=pwd;Database=wexflow_netcore;Port=5432" />-->
<!-- MySQL -->
<!--<Setting name="connectionString" value="Server=localhost;Database=wexflow_netcore;Uid=root;Pwd=pwd;Port=3306" />-->
<!-- LiteDB -->
<!--<Setting name="connectionString" value="Filename=/opt/wexflow/Wexflow/Database/Wexflow.db; Connection=direct" />-->
<!-- Oracle -->
<!--<Setting name="connectionString" value="Data Source=localhost:1521/wexflownetcore;User Id=SYSTEM;Password=pwd;" />-->
</Wexflow>
For the .NET Core version on Linux, Wexflow.xml is located in: /Applications/wexflow/Wexflow/Wexflow.xml
Below is the configuration file Wexflow.xml for the .NET Core version:
<?xml version="1.0" encoding="UTF-8" ?>
<Wexflow>
<Setting name="workflowsFolder" value="/Applications/wexflow/Wexflow/Workflows" />
<Setting name="recordsFolder" value="/Applications/wexflow/Wexflow/Records" />
<Setting name="recordsHotFolder" value="/Applications/wexflow/Wexflow/Records/_HotFolder" />
<Setting name="tempFolder" value="/Applications/wexflow/Wexflow/Temp" />
<Setting name="tasksFolder" value="/Applications/wexflow/Wexflow/Tasks" />
<Setting name="approvalFolder" value="/Applications/wexflow/Wexflow/Approval" />
<Setting name="xsd" value="/Applications/wexflow/Wexflow/Workflow.xsd" />
<Setting name="tasksNamesFile" value="/Applications/wexflow/Wexflow/TasksNames.json" />
<Setting name="tasksSettingsFile" value="/Applications/wexflow/Wexflow/TasksSettings.json" />
<Setting name="globalVariablesFile" value="/Applications/wexflow/Wexflow/GlobalVariables.xml" />
<!-- SQLite or MongoDB or SQLServer or PostgreSQL or MySQL or LiteDB or Oracle -->
<Setting name="dbType" value="SQLite" />
<!-- SQLite -->
<Setting name="connectionString" value="Data Source=/Applications/wexflow/Wexflow/Database/Wexflow.sqlite;Version=3;" />
<!-- MongoDB -->
<!--<Setting name="connectionString" value="Database=wexflow_netcore;MongoUrl=mongodb://localhost:27017;EnabledSslProtocols=false;SslProtocols=None" />-->
<!-- SQLServer -->
<!--<Setting name="connectionString" value="Server=localhost;Trusted_Connection=True;Database=wexflow_netcore;" />-->
<!-- PostgreSQL -->
<!--<Setting name="connectionString" value="Server=127.0.0.1;User Id=postgres;Password=pwd;Database=wexflow_netcore;Port=5432" />-->
<!-- MySQL -->
<!--<Setting name="connectionString" value="Server=localhost;Database=wexflow_netcore;Uid=root;Pwd=pwd;Port=3306" />-->
<!-- LiteDB -->
<!--<Setting name="connectionString" value="Filename=/Applications/wexflow/Wexflow/Database/Wexflow.db; Connection=direct" />-->
<!-- Oracle -->
<!--<Setting name="connectionString" value="Data Source=localhost:1521/wexflownetcore;User Id=SYSTEM;Password=pwd;" />-->
</Wexflow>
It is possible to format date and time in the backend through DateTimeFormat setting option. The date is local and can be formatted however you want. The default format is dd-MM-yyyy HH:mm:ss.
If this setting option is modified, you must restart Wexflow server to take it into consideration.
To change the setting option DateTimeFormat simply open the settings file C:\Program Files\Wexflow\Wexflow.Server.exe.config and edit the setting option.
To change the setting option DateTimeFormat simply open the settings file Wexflow.Server/appsettings.json and edit the setting option.
Copyright © Akram El Assas. All rights reserved.