-
-
Notifications
You must be signed in to change notification settings - Fork 175
Configuration
Wexflow works out of the box with zero configuration. However, if you want to customize settings, this page explains how to configure Wexflow server and its main configuration files.
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="HTTPS" value="false"/>
<add key="AdminFolder" value=".\Admin"/>
<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",
"AdminFolder": "..\\Admin",
"HTTPS": false,
"PfxFile": "C:\\Wexflow-netcore\\wexflow.pfx",
"PfxPassword": "wexflow2018"
}
Wexflow.xml is the main configuration file of Wexflow server. Its path is configured from:
- .NET 4.8 — in
C:\Program Files\Wexflow\Wexflow.Server.exe.config
- .NET 9.0+ — in
Wexflow.Server/appsettings.json
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 -->
<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" />-->
</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 9.0+ version on Windows, Wexflow.xml is located in: C:\Wexflow-netcore\Wexflow.xml
Below is the configuration file Wexflow.xml for the .NET 9.0+ 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 -->
<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" />-->
</Wexflow>
For the .NET 9.0+ version on Linux, Wexflow.xml is located in: /opt/wexflow/Wexflow/Wexflow.xml
Below is the configuration file Wexflow.xml for the .NET 9.0+ 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 9.0+ version on Linux, Wexflow.xml is located in: /Applications/wexflow/Wexflow/Wexflow.xml
Below is the configuration file Wexflow.xml for the .NET 9.0+ 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 -->
<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" />-->
</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 you modify this setting, you must restart the Wexflow server to apply changes.
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.
- Installing
- HTTPS/SSL
- Screenshots
- Docker
- Configuration
- Persistence Providers
- Getting Started
- Android App
- Samples
- Local Variables
- Global Variables
- REST Variables
- Functions
- Cron Scheduling
- Command Line Client
- RESTful API
- Logging
- Custom Tasks
-
Built-in Tasks
- File system tasks
- Encryption tasks
- Compression tasks
- Iso tasks
- Speech tasks
- Hashing tasks
- Process tasks
- Network tasks
- XML tasks
- SQL tasks
- WMI tasks
- Image tasks
- Audio and video tasks
- Email tasks
- Workflow tasks
- Social media tasks
- Waitable tasks
- Reporting tasks
- Web tasks
- Script tasks
- JSON and YAML tasks
- Entities tasks
- Flowchart tasks
- Approval tasks
- Notification tasks
- SMS tasks
- Run from Source