# WorkflowGen 8.2.3 Upgrade

## Overview

The following procedures apply to the WorkflowGen 8.2.3 upgrade pack, available at <https://github.com/advantys/workflowgen-releases/releases>.

## Package contents

The upgrade pack is distributed as a compressed file containing the following folders:

* `Inetpub`: WorkflowGen web application files
* `Program Files`: WorkflowGen Windows Services files
* `Databases`: WorkflowGen database update and creation files

## IIS server

Stop the IIS server or at least your WorkflowGen web applications if other websites are using the same IIS server.

## WorkflowGen Windows Services

Stop the WorkflowGen Directory Sync and Engine services in the Windows Services Management Console.

## Backup

### Application and data files

Back up the following folders:

* `DRIVE:\Inetpub\wwwroot\wfgen`
* `DRIVE:\Program Files\Advantys\WorkflowGen`

If the file storage path is not the standard `DRIVE:\Inetpub\wwwroot\wfgen\App_Data` then you have to back up the corresponding folder.

### Database

Perform a standard database backup using your DBMS tools.

## Update WorkflowGen web application files

### Delete deprecated Node.js application files and folders

Verify if these deprecated files and folders used by Node.js-based applications still exist in your `\wfgen` folder and delete them if they do.

1. Delete the following files and folders from the `\wfgen\graphql` folder:
   * `\controllers`
   * `\models`
   * `\node_modules`
   * `\services`
   * `\utils`
   * `config.js`
   * `config.production.js`
   * `server.js` <br>
2. Delete the following files and folders from the `\wfgen\hooks` folder:
   * `\controllers`
   * `\models`
   * `\node_modules`
   * `\services`
   * `\test`
   * `\utils`
   * `config.js`
   * `config.production.js`
   * `server.js`
   * `upload.js` <br>
3. Delete the following files and folders from the `\wfgen\auth` folder:
   * `\controllers`
   * `\models`
   * `\node_modules`
   * `\static`
   * `\utils`
   * `config.js`
   * `config.production.js`
   * `server.js` <br>
4. Delete the following files and folders from the `\wfgen\scim` folder:
   * `\controllers`
   * `\models`
   * `\node_modules`
   * `\services`
   * `\utils`
   * `config.js`
   * `config.production.js`
   * `server.js`

### Delete deprecated assembly files

Delete the following deprecated assembly `.dll` files from the `\wfgen\bin`, `\wfgen\ws\bin`, and `\Program Files\Advantys\WorkflowGen\services\bin` folders:

* `Advantys.Directories`
* `Advantys.Directories.Web.UI.Administration`
* `Advantys.Web.UI.Charting`
* `Advantys.Workflow.Applications.ExecSql`
* `Advantys.Workflow.Applications.GetUsersFromDir`
* `Advantys.Workflow.Applications.MergeForm`
* `Advantys.Workflow.Applications.RestApiClient`
* `Advantys.Workflow.Applications.SendMessage`
* `Advantys.Workflow.Applications.XmlToDatabase`
* `Advantys.Workflow.Applications.XmlTrans`
* `Advantys.Workflow.Reports`
* `Advantys.Workflow.Web.UI.Reports`

### Copy the upgrade pack content

Copy and overwrite the upgrade content from `Update\Inetpub\wwwroot\wfgen` to your WorkflowGen web application folder. By default, the suggested physical path is `DRIVE:\Inetpub\wwwroot\wfgen`.

{% hint style="warning" %}

* Domain users and the Windows accounts used to run the WorkflowGen IIS application pool and Engine service must have read and write permissions for the `\wfgen\App_Data` folder.<br>
* Do **NOT** copy and overwrite your existing `DRIVE:\Inetpub\wwwroot\wfgen\web.config` file if you want to keep your current WorkflowGen configuration settings and database connection information.<br>
* It’s possible that the following default CSS files have been updated in this release and could overwrite any changes you had made in your existing installation:
  * `\wfgen\App_Themes\Default\portal\css\Default.css`
  * `\wfgen\App_Themes\Default\admin\css\Default.css` <br>
* If you have made changes to any of the default files in the following folders (e.g. `*.aspx`, `*.css`, `*.resx` files), make a backup of the existing files prior to the upgrade and manually re-apply these changes to the corresponding version 8.x.x files:
  * `\wfgen`
  * `\wfgen\App_Themes`
  * `\wfgen\App_Data\Templates\Emails`
  * `\wfgen\App_Data\Templates\Forms`
  * `\wfgen\App_Data\Templates\Processes`
    {% endhint %}

## Update WorkflowGen Windows Services files

### Delete deprecated DLL file

Delete the deprecated `DRIVE:\Program Files\Advantys\WorkflowGen\Services\bin\EAGetMail40.dll` file.

### Overwrite the WorkflowGen Windows Services folder

Overwrite the contents of your WorkflowGen Windows Services folder with the contents of `Update\Program Files\Advantys\WorkflowGen`. By default, the suggested physical path is `DRIVE:\Program Files\Advantys\WorkflowGen`.

{% hint style="danger" %}
Do **NOT** copy and overwrite your existing `DRIVE:\Program Files\Advantys\WorkflowGen\Services\bin\*.config` files.
{% endhint %}

## Update Node.js program files

Copy `node.exe.config` and `trace.config` (located in `Update\Program Files\nodejs`) to `DRIVE:\Program Files\nodejs`.

{% hint style="warning" %}
If there is already a `node.exe.config` file in the `DRIVE:\Program Files\nodejs` folder, **do not overwrite it**. Instead, add the following to the existing file's `<configuration>` node:

```markup
<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>
<system.diagnostics configSource="trace.config" />
```

{% endhint %}

## Update configuration files

This section contains configuration parameter changes to be applied based on the version of WorkflowGen from which you are upgrading.

#### 📌 Examples

* When upgrading to version 8.2.3 from version 8.0.6, apply the changes in the **When upgrading from version 8.0.7 and earlier**, **When upgrading from version 8.0.8 and earlier**, **When upgrading from version 8.1.0 and earlier**, and **When upgrading from version 8.1.3 and earlier** sections.<br>
* When upgrading to version 8.2.3 from version 8.2.0, there are no changes to make to the web configuration file.

{% hint style="warning" %}
You must remove the `xmlns` attribute from the web configuration file regardless of the version from which you are upgrading. See [Remove the `xmlns` attribute](#remove-the-xmlns-attribute) for instructions on how to do this.
{% endhint %}

#### When upgrading from version 5.7.4 and earlier

Check the following parameters in your `\wfgen\web.config` and add them if they are not already there.

```markup
<add key="EngineEnableSelfServiceDataAssignException" value="N" />
<add key="EngineNotificationDefaultReplyTo" value="" />
<add key="EngineNotificationMaxFileAttSize" value="10" />
<add key="EngineNotificationTextDetection" value="Y" />
<add key="EngineNotificationServerTimeout" value="3" />
<add key="ApplicationDistributedDatabaseSourceMode" value="0" />
<add key="ApplicationEnableDistributedDatabaseSource" value="N" />
<add key="ApplicationEnableArchiveSiteRedirectConfirmation" value="Y" />
<add key="ApplicationArchiveSiteUrl" value="" />
<add key="ApplicationShowAssociatedDataWithEmptyValue" value="Y" />
<add key="ApplicationSecurityEnableWebAppsSecureMode" value="N" />
```

{% hint style="info" %}
`WorkflowGen.My` and `WorkflowGen.My.Web.UI.WebControls` (`WorkflowFileUpload`) version 3.0 or later are required in all your Visual Studio Web Forms if the `ApplicationSecurityEnableWebAppsSecureMode` security feature is enabled. For more information, see the [Web apps security: Workflow parameters secure mode](https://discuss.workflowgen.com/t/setup-web-apps-security-workflow-parameters-secure-mode/125) WorkflowGen Knowledge Base article.
{% endhint %}

```markup
<add key="PortalEnableComments" value="Y" />
<add key="PortalCommentsRefreshFrequency" value="30000" />
<add key="PortalCommentsPopUpWidth" value="376" />
<add key="PortalCommentsPopUpHeight" value="545" />
<add key="PortalCommentsSortBy" value="DATE_POST" />
<add key="PortalCommentsSortOrder" value="ASC" />
<add key="PortalCommentsExpandView" value="N" />
<add key="PortalCommentsListSize" value="25" />
<add key="PortalDisplayCodeNames" value="N" />
<add key="PortalMaxListSize" value="1000" />
<add key="PortalQuickViewEnabled" value="Y" />
<add key="PortalQuickViewDataName" value="FORM_ARCHIVE" />
<add key="PortalQuickViewDisplayOnMouseEvent" value="CLICK" />
<add key="PortalTextDetection" value="Y" />
<add key="PortalActivityCompleteInBackground" value="N" />
<add key="PortalEnableSearchResultAutoRedirect" value="Y" />
<add key="PortalCommonProcessDataNameList" value="" />
<add key="PortalReportEnableCustomColumns" value="Y" />
<add key="PortalReportAllowUserToCreateCustomColumns" value="Y" />
<add key="ReportsTextDetection" value="Y" />
<add key="AdministrationFormDataProviderName" value="System.Data.SqlClient, System.Data.OleDb, System.Data.Odbc, System.Data.OracleClient" />
<add key="AdministrationEnableDeletionRulesCheck" value="Y" />
<add key="AdministrationRestrictManagerToModifyGlobalParticipant" value="N" />
<add key="AdministrationFormDesignUndoLimit" value="30" />
<add key="DirectorySynchronizationMaxUserDeletionCount" value="0" />
<add key="DirectorySynchronizationSyncGroupMembersUsedInParticipantOnly" value="N" />
<add key="PortalFrameSetHeight" value="0,68,*,0" />
```

{% hint style="info" %}
The first number in the `PortalFrameSetHeight` value is the height of the banner. If your website is configured to display a banner, enter its height in pixels here. The other default values should not be changed.
{% endhint %}

```markup
<add key="PortalEnableCallingCard" value="Y" />
<add key="PortalReportAdvancedViewDefault" value="Y" />
<add key="PortalReportEnableCustomCharts" value="Y" />
<add key="PortalReportEnableQuickMassApproval" value="N" />
<add key="PortalReportAllowUserToCreateCustomCharts" value="Y" />
<add key="PortalDefaultWorkflowGraphicalMode" value="HTML5" />
<add key="ProcessesRuntimeWebServiceAllowedUsers" value="wfgen_admin" />
```

{% hint style="info" %}
You can copy the `ProcessesRunTimeWebServiceAllowedUsers` parameter from your existing `\wfgen\ws\web.config` to `\wfgen\web.config`.
{% endhint %}

```markup
<add key="EFormAspxPreviousFilesCleanUp" value="Y" />
```

{% hint style="info" %}
You can copy this parameter from your existing `\wfgen\WfApps\WebApps\eFormASPX\web.config` to `\wfgen\web.config`.
{% endhint %}

```markup
<add key="GetUsersFromDirMaxResultNb" value="100" />
```

{% hint style="info" %}
You can copy this parameter from your existing `\wfgen\WfApps\WebServices\GetUsersFromDir\web.config` to `\wfgen\web.config`.
{% endhint %}

```markup
<add key="XmlToDatabaseTestMode" value="N" />
<add key="XmlToDatabaseEnableTrace" value="N" />
```

{% hint style="info" %}
You can copy these parameters from your existing `\wfgen\WfApps\WebServices\XmlToDatabase\web.config` to `\wfgen\web.config`.
{% endhint %}

```markup
<add key="XmlTransPreviousFilesCleanUp" value="Y" />
<add key="XmlTransEnableTrace" value="N" />
```

{% hint style="info" %}
You can copy these parameters from your existing `\wfgen\WfApps\WebServices\XmlTrans\web.config` to `\wfgen\web.config`.
{% endhint %}

Remove the following deprecated parameters from `<appSettings>`:

```
PortalFollowUpRelevantDataListNumber
PortalPopupRelevantDataListNumber
PortalEnableRequestDataListPopUp
```

Define the following nodes in `<configuration>`:

```markup
<location path="." inheritInChildApplications="false">
    <system.web>
        <httpRuntime requestValidationMode="2.0" maxRequestLength="10240" />
    </system.web>
</location>
<location path="wfapps/webforms" inheritInChildApplications="false">
    <system.web>
        <httpRuntime requestValidationMode="2.0" maxRequestLength="10240" />
        <pages clientIDMode="AutoID" controlRenderingCompatibilityVersion="3.5" />
    </system.web>
</location>
<location path="ws" inheritInChildApplications="false">
    <system.web>
        <httpRuntime requestValidationMode="2.0" maxRequestLength="10240" />
    </system.web>
</location>
```

Define or update the following node in `<configuration>/<system.web>`:

```markup
<pages validateRequest="false" enableSessionState="false" />
```

#### When upgrading from version 6.0.0 and earlier

Add the following new parameters to `<appSettings>`:

```markup
<add key="AdministrationDefaultWorkflowGraphicalMode" value="HTML5" />
<add key="EngineNotificationLogLevel" value="1" />
<add key="RemoteApprovalLogTraceLevel" value="3" />
<add key="RemoteApprovalMailServerSecurity" value="none" />
<add key="RemoteApprovalRefreshInterval" value="180000" />
<add key="RemoteApprovalMailServerType" value="POP" />
<add key="RemoteApprovalLifeSpan" value="0" />
<add key="RemoteApprovalMailServerPort" value="110" />
<add key="ApplicationSecurityPasswordManagementMode" value="V5" />
<add key="ApplicationSecurityMaxLoginAttempts" value="5" />
<add key="ApplicationSecurityMinimumPasswordLength" value="8" />
<add key="ApplicationSmtpPickupDirectory" value="DRIVE:\inetpub\mailroot\Pickup" />
```

{% hint style="info" %}
Replace the `ApplicationSmtpPickupDirectory` path above with the path of your SMTP gateway pickup folder.
{% endhint %}

```markup
<add key="ApplicationSmtpServerTimeout" value="3000" />
<add key="ApplicationSmtpDeliveryMethod" value="SmtpServer" />
```

{% hint style="info" %}
The `ApplicationSmtpDeliveryMethod` parameter defines the notification delivery method. By default, it uses the SMTP server, but you can change the SMTP delivery method to **Pickup directory** in the **Administration Module Configuration Panel**.
{% endhint %}

#### When upgrading from version 6.1.0 and earlier

Add the following new parameter to `<appSettings>`:

```markup
<add key="AdministrationAssociatedActivitiesToSwimlane" value="Y" />
```

#### When upgrading from version 6.1.4 and earlier

Add or modify the `AdministrationFormDataProviderName` parameter as follows:

```markup
<add key="AdministrationFormDataProviderName" value="System.Data.SqlClient,System.Data.OleDb,System.Data.Odbc,System.Data.OracleClient,Oracle.DataAccess.Client" />
```

{% hint style="info" %}
The `Oracle.DataAccess.Client` value was added to this parameter in version 6.1.5.
{% endhint %}

#### When upgrading from version 6.1.6 and earlier

Add the following new parameters to `<appSettings>`:

```markup
<add key="ApplicationWebFormsPath" value="" />
<add key="EngineNotificationDefaultSenderName" value="" />
<add key="PortalDashboardAutoRefreshInterval" value="0" />
<add key="PortalActivityOnCompleteRedirectToView" value="N" />
```

#### When upgrading from version 6.4.0 and earlier

Add the following new parameters to `<appSettings>`:

```markup
<add key="SendMessageProvider" value="TWILIO" />
<add key="SendMessageAccountSID" value="" />
<add key="SendMessageAuthToken" value="" />
<add key="SendMessageFrom" value="" />
<add key="SendMessageApiUrl" value="https://api.twilio.com/2010-04-01/Accounts/" />
<add key="SendMessageEnableLogs" value="Y" />
```

#### When upgrading from version 6.5.0 and earlier

Add the following new parameter to `<appSettings>` to configure the SENDHTTPPOST workflow application log file, replacing the value `n` with `0` to disable logging, `1` for simple logs, or `2` for debug logs:

```markup
<add key="SendHttpPostLogLevel" value="n" />
```

#### When upgrading from version 6.6.0 and earlier

Remove the following deprecated parameters from `<appSettings>`:

```
ApplicationImpersonificationUsername
ApplicationImpersonificationPassword
PortalDefaultWorkflowGraphicalMode
ApplicationEnableFlashDetection
```

#### When upgrading from version 7.1.1 and earlier

Add the following new parameters to `<appSettings>`:

```markup
<add key="GraphqlQueryTimeout" value="90000" />
<add key="GraphqlOperationTimeout" value="30000" />
<add key="GraphqlMaxOperationCount" value="10000" />
<add key="GraphqlMaxInputFileSize" value="10240" />
<add key="GraphqlInputFileDownloadTimeout" value="100000" />
<add key="HooksMaxInputFileDownloadTimeout" value="100000" />
<add key="HooksOperationTimeout" value="30000" />
<add key="HooksMaxInputFileSize" value="10240" />
<add key="EngineServiceTempApiFilesLifespan" value="2" />
```

#### When upgrading from version 7.3.1 and earlier

Add the following new parameter to `<appSettings>`:

```markup
<add key="AdministrationDefaultConditionLanguage" value="JS" />
```

#### When upgrading from version 7.6.0 and earlier

Add the following new parameters to `<appSettings>`:

```markup
<add key="ApplicationSmtpEnableSsl" value="N" />
<add key="ApplicationSmtpPort" value="" />
<add key="ApplicationSmtpUsername" value="" />
<add key="ApplicationSmtpPassword" value="" />
```

#### When upgrading from version 7.9.1 and earlier <a href="#id-791-earlier" id="id-791-earlier"></a>

Add the following new parameters to `<appSettings>`:

```markup
<add key="GraphqlMaxInputFileContentSize" value="0" />
<add key="HooksMaxInputFileContentSize" value="0" />
<add key="GraphqlInputFileAllowedFolders" value="" />
<add key="HooksInputFileAllowedFolders" value="" />
```

{% hint style="info" %}
If you're using folders for GraphQL and/or incoming webhooks file operations (such as sending a file action parameter), you must update the values of the `GraphqlInputFileAllowedFolders` and `HooksInputFileAllowedFolders` parameters. See the [GraphQL Input file allowed folders](https://docs.advantys.com/workflowgen-integration-guide/graphql#input-file-allowed-folders) and [Incoming Webhooks Input file allowed folders](https://docs.advantys.com/workflowgen-integration-guide/incoming-webhooks#input-file-allowed-folders) sections in the [WorkflowGen Integration Guide](https://docs.advantys.com/workflowgen-integration-guide/) for more information.
{% endhint %}

#### When upgrading from version 7.14.3 and earlier

Add the following new parameter to `<appSettings>`:

```markup
<add key="ApplicationSecurityAuthSessionRefreshEnableIFrame" value="Y" />
```

#### When upgrading from version 7.14.8 and earlier

Add the following new parameters to `<appSettings>`:

```markup
<add key="EngineServiceInactiveRequestLifespanUnit" value="d" />
<add key="EFormAspxAcceptEmptyInputTextParam" value="Y" />
<add key="SendHttpPostMaxResponseLength" value="4194304" />
<add key="RestApiClientLogLevel" value="0"/>
<add key="RestApiClientRequestTimeout" value="3000" />
<add key="RestApiClientMaxResponseLength" value="4194304" />
<add key="RestApiClientEnableFilesCleanUp" value="Y" />
<add key="GetUsersFromDirLogLevel" value="0" />
<add key="XmlTransEnableFilesCleanUp" value="Y" />
<add key="MergeFormEnableFilesCleanUp" value="Y" />
<add key="GraphqlInputFileAllowedHttpUrls" value="" /> 
<add key="HooksInputFileAllowedHttpUrls" value="" />
```

{% hint style="info" %}
If you're using HTTP URLs for GraphQL and/or incoming webhooks file operations (such as sending a file action parameter), you must update the values of the `GraphqlInputFileAllowedHttpUrls` and `HooksInputFileAllowedHttpUrls` parameters. See the [GraphQL Input file allowed HTTP URLs](https://docs.advantys.com/workflowgen-integration-guide/graphql#input-file-allowed-http-urls) and [Incoming Webhooks Input file allowed HTTP URLs](https://docs.advantys.com/workflowgen-integration-guide/incoming-webhooks#input-file-allowed-http-urls) sections in the [WorkflowGen Integration Guide](https://docs.advantys.com/workflowgen-integration-guide/) for more information.
{% endhint %}

Remove the following deprecated parameters from `<appSettings>`:

```markup
XmlTransPreviousFilesCleanUp
MergeFormTempFilesLifeSpan
```

#### **When upgrading from version 7.15.2 and earlier**

1. Add the following nodes after the existing `<location>` nodes in `\wfgen\web.config`:

   ```markup
   <location path="auth" inheritInChildApplications="false">
       <system.webServer>
           <modules>
               <remove name="ApplicationSecurityAuthenticationModule" />
           </modules>
       </system.webServer>
   </location>
   <location path="hooks" inheritInChildApplications="false">
       <system.webServer>
           <modules>
               <remove name="ApplicationSecurityAuthenticationModule" />
           </modules>
       </system.webServer>
   </location>
   <location path="scim" inheritInChildApplications="false">
       <system.webServer>
           <modules>
               <remove name="ApplicationSecurityAuthenticationModule" />
           </modules>
       </system.webServer>
   </location>
   ```
2. Remove the node below from `\wfgen\auth\web.config`, `\wfgen\hooks\web.config`, and `\wfgen\scim\web.config`, if present:

   ```markup
   <modules>
       <remove name="ApplicationSecurityAuthenticationModule" />
   </modules>
   ```

#### When upgrading from version 7.15.4 and earlier

Add the following new parameter to `<appSettings>`:

```markup
<add key="PortalRedirectAllowedHttpUrls" value="" />
```

{% hint style="warning" %}
As of version 7.15.5, the optional `BACKURL_SUBMIT` and `BACKURL_CANCEL` HTTP parameters used in custom WorkflowGen URLs (for example, [when launching a new request and starting the first action within another website](https://docs.advantys.com/workflowgen-integration-guide/integration-using-workflowgen-urls#from-within-another-website)) now **ONLY** support absolute URLs (starting with `http://` or `https://`), relative URLs (starting with `/`), or URLs defined in the `PortalRedirectAllowedHttpUrls` configuration parameter (e.g. `value='blank.htm, myPage.htm'`).
{% endhint %}

#### When upgrading from version 7.15.5 and earlier

1. Add the following node after the existing `<location>` nodes in `\wfgen\web.config`:

   ```html
   <location path="graphql" inheritInChildApplications="false">
      <system.webServer>
         <httpProtocol>
            <customHeaders>
               <add name="Access-Control-Allow-Origin" value="*" />
               <add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, HEAD" />
               <add name="Access-Control-Allow-Headers" value="Accept, Origin, Authorization, Content-Type, x-wfgen-impersonate-username, x-iisnode-auth_user" />
            </customHeaders>
         </httpProtocol>
      </system.webServer>
   </location>
   ```

2. Change the default value of `RestApiClientRequestTimeout` from `3000` to `30000` milliseconds.<br>

3. Make the following modifications to each Node.js component's `web.config` file (located in `\wfgen\graphql`, `\wfgen\hooks`, `\wfgen\scim`, and `\wfgen\auth`):

   * Change the iisnode handler path from `server.js` to `dist/server.js`.
   * Change the rewrite rule `url` property from `server.js` to `dist/server.js`.<br>

   It should look as follows:

   ```markup
   <handlers>
      <add name="iisnode" path="dist/server.js" verb="*" modules="iisnode"/>
   </handlers>

   <rewrite>
      <rules>
         <rule name="DynamicContent">
            <conditions>
               <add input="{{REQUEST_FILENAME}}" matchType="IsFile" negate="True"/>
            </conditions>
            <action type="Rewrite" url="dist/server.js"/>
         </rule>
      </rules>
   </rewrite>   
   ```

#### When upgrading from version 7.16.5 and earlier

Add the following new parameters to `<appSettings>`:

```markup
<add key="AdministrationMaxHelpTextSize" value="10000" />
<add key="ApplicationSecurityAuthAdditionalScopes" value="" />
```

#### When upgrading from version 7.18.1 and earlier

Add the following new parameter to `<appSettings>`:

```markup
<add key="ReportsTopProcessesNumber" value="10" />
```

#### When upgrading from version 7.18.2 and earlier

Add the following new parameter to `<appSettings>`:

```markup
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
```

#### When upgrading from version 7.20.0 and earlier

Add the following new parameters to `<appSettings>`:

```markup
<add key="ApplicationSecurityAuthResponseMode" value="" />
<add key="ApplicationSecurityAuthDecodeAccessToken" value="" />
```

#### When upgrading from version 7.21.0 and earlier

Add the following new parameter to `<appSettings>`:

```markup
<add key="ExecSqlLogLevel" value="0" />
```

{% hint style="warning" %}
As of WorkflowGen 7.22.0, the log level values for the existing GETUSERSFROMDIR, MERGEFORM, SENDHTTPPOST, and RESTAPICLIENT workflow applications have changed to `0` for no logs (default), `2` for information, and `3` for debugging. You can set (or reset) the log levels by updating the values of the following parameters accordingly:

```markup
<add key="GetUsersFromDirLogLevel" value="" />
<add key="MergeFormLogLevel" value="" />
<add key="SendHttpPostLogLevel" value="" />
<add key="RestApiClientLogLevel" value="" />
```

{% endhint %}

#### When upgrading from version 7.22.0 and earlier

Remove the existing `Access-Control-Allow-*` custom header nodes from `location path="graphql"` (as shown below), since they are deprecated as of version 7.22.1:

```markup
<location path="graphql" inheritInChildApplications="false">
    <system.webServer>
        <httpProtocol>
            <customHeaders>
                <add name="Access-Control-Allow-Origin" value="*" />
                <add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, HEAD" />
                <add name="Access-Control-Allow-Headers" value="Accept, Origin, Authorization, Content-Type, x-wfgen-impersonate-username, x-iisnode-auth_user" />
            </customHeaders>
        </httpProtocol>
    </system.webServer>
</location>
```

{% hint style="warning" %}
If you want to configure CORS to allow GraphQL API access from a third-party application, you must now follow the instructions in the [Cross-origin resource sharing (CORS)](https://docs.advantys.com/workflowgen-integration-guide/graphql#cross-origin-resource-sharing-cors) section in the [WorkflowGen Integration Guide](https://docs.advantys.com/workflowgen-integration-guide/).
{% endhint %}

#### When upgrading from all 7.x.x versions and earlier

1. Add the following new parameters to `<appSettings>`:

   ```html
   <add key="AdministrationProcessQuickListSize" value="0" />
   <add key="EngineServiceNotificationFrequency" value="60000" />
   <add key="EngineServiceCancellationFrequency" value="120000" />
   <add key="EngineServiceSynchroActionFrequency" value="15000" />
   <add key="EngineServiceScheduledSystemActionFrequency" value="15000" />
   <add key="EngineServiceTimeoutSystemActionFrequency" value="15000" />
   <add key="EngineServiceCleanupFrequency" value="180000" />
   <add key="EngineServiceMaxScheduledSystemActions" value="25" />    
   <add key="EngineServiceMaxTimeoutSystemActions" value="25" />
   <add key="ApplicationSecurityAuthExposeAccessTokenInCookies" value="N" />
   <add key="DocuSignUserGuid" value="" />
   <add key="DocuSignAuthServer" value="" />
   <add key="DocuSignClientId" value="" />
   <add key="DocuSignHostServer" value="" />
   <add key="DocuSignSendLogLevel" value="0" />
   <add key="DocuSignCheckLogLevel" value="0" />
   <add key="JsonToDataLogLevel" value="0" />
   ```

2. Remove the following parameters from `<appSettings>`:

   ```html
   <add key="DirectoryApplicationAssemblyQualifiedName" value="Advantys.Workflow.Directories.WorkflowDirectoryUserManager, Advantys.Workflow.Directories" />
   <add key="DirectoryDeletionRulesAssemblyQualifiedName" value="Advantys.Workflow.Directories.WorkflowDirectoryDeletionRules, Advantys.Workflow.Directories" />
   <add key="DirectoryMaxMapToUsers" value="100" />
   <add key="DirectoryTruncateValue" value="50" />
   ```

3. Add the following to the `<configuration>` node:

   <pre class="language-html"><code class="lang-html"><strong>&#x3C;runtime>
   </strong>    &#x3C;assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
           &#x3C;dependentAssembly>
               &#x3C;assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
               &#x3C;bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
           &#x3C;/dependentAssembly>
       &#x3C;/assemblyBinding>
   &#x3C;/runtime>
   &#x3C;system.diagnostics configSource="trace.config" />
   </code></pre>

4. Add `targetFramework="4.8"` to the three web apps' `httpRuntime` nodes:

   <pre class="language-html"><code class="lang-html"><strong>&#x3C;location path="." inheritInChildApplications="false">
   </strong>    &#x3C;system.web>
           &#x3C;httpRuntime requestValidationMode="2.0" maxRequestLength="10240" targetFramework="4.8" />
       &#x3C;/system.web>
   &#x3C;/location>
   &#x3C;location path="wfapps/webforms" inheritInChildApplications="false">
       &#x3C;system.web>
           &#x3C;httpRuntime requestValidationMode="2.0" maxRequestLength="10240" targetFramework="4.8" />
           &#x3C;pages clientIDMode="AutoID" controlRenderingCompatibilityVersion="3.5" />
       &#x3C;/system.web>
   &#x3C;/location>
   &#x3C;location path="ws" inheritInChildApplications="false">
       &#x3C;system.web>
           &#x3C;httpRuntime requestValidationMode="2.0" maxRequestLength="10240" targetFramework="4.8" />
       &#x3C;/system.web>
   &#x3C;/location>
   </code></pre>

5. Add the following to the `<configuration>` node in `\Inetpub\wwwroot\wfgen\ws\web.config`:

   ```html
   <runtime>
       <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
           <dependentAssembly>
               <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
               <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
           </dependentAssembly>
       </assemblyBinding>
   </runtime>
   ```

6. Add the following to `<configuration>` node in `\Program Files\Advantys\WorkflowGen\Services\bin\WfgDirectoriesSyncService.exe.config`:

   ```html
   <system.diagnostics configSource="WfgDirectoriesSyncService.exe.trace.config" />
   ```

7. Add the following to the `<configuration>` node in `\Program Files\Advantys\WorkflowGen\Services\bin\WfgWorkflowEngineService.exe.config`:

   ```markup
   <system.diagnostics configSource="WfgWorkflowEngineService.exe.trace.config" />
   <runtime>
       <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
           <dependentAssembly>
               <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
               <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
           </dependentAssembly>
       </assemblyBinding>
   </runtime>
   ```

#### When upgrading from version 8.0.0 and earlier

1. Add the following new parameters to `<appSettings>`:

   <pre class="language-html"><code class="lang-html"><strong>&#x3C;add key="RemoteApprovalAuthClientId" value="" />
   </strong>&#x3C;add key="RemoteApprovalAuthClientSecret" value="" />
   &#x3C;add key="RemoteApprovalAuthScope" value="" />
   &#x3C;add key="RemoteApprovalAuthAccessTokenUri" value="" />
   </code></pre>

2. Remove the following deprecated parameter from `<appSettings>`:

   ```markup
   EngineTraceMode
   ```

#### When upgrading from version 8.0.1 and earlier

Add the following new parameters to `<appSettings>`:

```markup
<!-- AdobeSign -->
<add key="AdobeSignClientId" value="" />
<add key="AdobeSignClientSecret" value="" />
<add key="AdobeSignHostServer" value="" />
<add key="AdobeSignRefreshToken" value="" />
<add key="AdobeSignSendLogLevel" value="0" />
<add key="AdobeSignCheckLogLevel" value="0" />
```

#### When upgrading from version 8.0.2 and earlier

Add the following new parameters to `<appSettings>`:

```markup
<add key="EngineNotificationNotifyDelegator" value="Y" />
<add key="EnginePushNotificationSendExpoApiUrl" value="https://exp.host/--/api/v2/push/send" />

<!-- Docaposte -->
<add key="DocaposteUsername" value="" />
<add key="DocapostePassword" value="" />
<add key="DocaposteHostServer" value="" />
<add key="DocaposteOfferCode" value="" />
<add key="DocaposteOrganizationalUnitCode" value="" />
<add key="DocaposteSendLogLevel" value="0" />
<add key="DocaposteCheckLogLevel" value="0" />
```

#### When upgrading from version 8.0.7 and earlier

1. Add the following new parameter to `<appSettings>` :

   ```html
   <add key="EngineServiceMaxPausedSynchroActions" value="25" />
   ```

2. Update the value of the `EngineServiceTimeoutSystemActionFrequency` parameter to `120000` as follows:

   ```html
   <add key="EngineServiceTimeoutSystemActionFrequency" value="120000" />
   ```

#### When upgrading from version 8.0.10 and earlier

Add the following new parameter to `<appSettings>` :

```html
<add key="PortalReportAdvancedViewPaging" value="N" />
```

#### When upgrading from version 8.1.0 beta and earlier

1. Update the value of the following parameter in `<appSettings>`:

   ```html
   <add key="PortalListPageSize" value="25" />
   ```

2. Remove the following parameters from `<appSettings>` from version **8.1.0 beta** only:

   ```html
   <add key="PortalReportAdvancedViewPageSize" value="25" />
   <add key="PortalReportAdvancedViewPageSizeOptions" value="10,25,50,100,250" />
   ```

#### When upgrading from version 8.1.2 and earlier

Add the following new parameters to `<appSettings>` :

```html
<add key="GraphqlApiKeyEnabled" value="N" />
<add key="GraphqlApiKey" value="" />
```

#### When upgrading from version 8.1.3 and earlier

1. Add the following new parameters to `<appSettings>`:

   ```html
   <add key="PortalDisplayAssignedTeamAction" value="N" />
   <add key="HooksAllowImpersonateUser" value="N" />
   <add key="HooksApiKeyEnabled" value="N" />
   <add key="HooksApiKey" value="" />
   ```

2. Update the `bindingRedirect` node in all of the affected configuration files (listed below) from `<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />` to `<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />`:
   * `\wfgen\web.config`
   * `\wfgen\ws\web.config`
   * `\Program Files\Advantys\WorkflowGen\Services\bin\WfgWorkflowEngineService.exe.config`
   * `\Program Files\nodejs\node.exe.config`

### Remove the `xmlns` attribute

As of WorkflowGen version 7, you must remove the `xmlns` attribute from these configuration files:

```
\wfgen\web.config 
\wfgen\ws\web.config 
\wfgen\WfApps\WebForms\web.config 
DRIVE:\Program Files\Advantys\WorkflowGen\Services\bin\WfgWorkflowEngineServer.exe.config
DRIVE:\Program Files\Advantys\WorkflowGen\Services\bin\WfgDirectoriesSyncService.exe.config
```

To do this, change `<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">` to `<configuration>`.

## Update the root web configuration file

### Configure the WorkflowGen root website to auto-redirect to the `wfgen` web app

As of WorkflowGen 7.22.0, you should configure your WorkflowGen root website (e.g. `https://server`) to auto-redirect to the `https://server/wfgen` web app. To do this, follow the procedure below:

1. Make sure the [URL Rewrite](https://www.iis.net/downloads/microsoft/url-rewrite) tool is installed on your WorkflowGen server.
2. Create or update the `web.config` file in your website's **root** folder (e.g. `DRIVE:\inetpub\wwwroot\web.config`). \
   \
   ⚠️ **Warning:** This is **not** the same `web.config` file as the main WorkflowGen `web.config` file (located in `DRIVE:\inetpub\wwwroot\wfgen\web.config`).<br>
3. Define the rewrite rule node as shown below (`configuration` / `system.webServer` / `<rewrite>` / `<rules>` / `<rule>`):

   ```markup
   <?xml version="1.0" encoding="UTF-8"?>
   <configuration>
       <system.webServer>
           <rewrite>
               <rules>
                   <rule name="Rewrite to wfgen" stopProcessing="true">
                       <match url="(^$|^wfgen$|^wfgen/$)" />
                       <action type="Rewrite" url="/wfgen/show.aspx?QUERY=CONTEXT&amp;REQUEST_QUERY=WELCOME&amp;NO_REDIR=Y" />
                   </rule>
               </rules>
           </rewrite>
       </system.webServer>
   </configuration>
   ```

## Update Form Designer webforms for version 8

As of WorkflowGen version 8, the `WorkflowGen.My.Web.UI.WebControls.dll` assembly has been merged into `WorkflowGen.My.dll`. This breaking change impacts webforms created in the Form Designer and the webforms' `\bin` folders, so you must do one of the following:

### Use the provided PowerShell script

Run the `\update\configuration\update-webforms-wfg-my-assembly.ps1` script in PowerShell inside the `\wfgen\wfapps\webforms\` folder. This will automatically update your ASPX webforms and delete deprecated files and folders.

{% hint style="warning" %}
This script requires **PowerShell version 5.1 or later**.

It will update all `.aspx` files located in the `\webforms` folder, including those not managed by the Form Designer. If you have custom webforms in this folder that use another version of `WorkflowGen.My.dll`, then you should skip the changes to these `.aspx` files. You can do this by moving these files to a temporary folder before running the script, and then copying them back to the original folder.
{% endhint %}

#### Usage example

```bash
.\update-webforms-wfg-my-assembly.ps1 -Path "c:\inetpub\wwwroot\wfgen\wfapps\webforms" -Verbose
```

### Manually

1. Delete the following files and folders from the`\wfgen\wfapps\webforms\bin\` folder:
   * `WorkflowGen.My.Web.UI.WebControls.dll`
   * `WorkflowGen.My.Web.Handlers.dll`
   * `\de`
   * `\fr`
   * `\hu`
   * `\pl`
2. Upgrade each of your webforms created in the Form Designer, either by re-saving them or by manually replacing the `<%@ Register Assembly="WorkflowGen.My.Web.UI.WebControls" ... %>` tag with `<%@ Register Assembly="WorkflowGen.My" ... %>` inside each of your `.aspx` files.

## Update the GraphQL and webhooks configuration files

In the `\wfgen\graphql\web.config` and `\wfgen\hooks\web.config` files, add the following to `<system.webServer>`:

```markup
<httpErrors existingResponse="PassThrough" errorMode="Detailed"></httpErrors>
```

## Update the Directory Synchronization configuration file

There is a new configuration parameter required when upgrading from **version 5.1.5 and earlier**. This parameter allows you to provide a unique service name to the WorkflowGen Directory Synchronization service should you have multiple instances of WorkflowGen installed on a single server.

Add the following parameter to `DRIVE:\Program Files\Advantys\WorkflowGen\Services\bin\WfgDirectoriesSyncService.exe.config`:

```markup
<add key="ServiceName" value="WorkflowGenDirSyncService" />
```

## Update the WorkflowGen Engine Service configuration file

There is a new configuration parameter required when upgrading from **version 5.1.5 or earlier**. This parameter allows you to provide a unique service name to the WorkflowGen Engine service should you have multiple instances of WorkflowGen installed on a single server.

Add the following parameter to `DRIVE:\Program Files\Advantys\WorkflowGen\Services\bin\WfgWorkflowEngineService.exe.config`:

```markup
<add key="ServiceName" value="WorkflowGenEngineService" />
```

## Move the XMLTODATABASE transactions file

If you are upgrading **from version 5.7.4 or earlier**, copy the `Transactions.xml` file from `\wfgen\WfApps\WebServices\XmlToDatabase\App_Data` to `\wfgen\App_Data\Files\XmlToDatabase`.

## Upgrade the WorkflowGen database

Run the SQL scripts listed below in order, starting with your current version of WorkflowGen. For example, if you are upgrading from version 5.5.0, run the scripts starting with **For versions 5.5.0 and earlier** until **For versions 8.1.3 and earlier**, inclusively.

{% hint style="info" %}
Oracle database is no longer supported as of WorkflowGen 7.16.0.
{% endhint %}

### MS SQL Server

#### For versions 5.1.9 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V5-2-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 5.2.x and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V5-3-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 5.3.x, 5.4.0 (alpha, beta 1 and beta 2) and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V5-4-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 5.4.x official and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V5-5-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 5.5.0 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V5-5-1.sql`database update script in your SQL Server Management Studio tool.

#### For versions 5.5.1 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V5-5-2.sql` database update script in your SQL Server Management Studio tool.

#### For versions 5.5.4 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V5-5-5.sql` database update script in your SQL Server Management Studio tool.

#### For versions 5.5.5 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V5-6-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 5.6.1 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V5-6-2.sql` database update script in your SQL Server Management Studio tool.

#### For versions 5.6.2 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V5-6-3.sql` database update script in your SQL Server Management Studio tool.

#### For versions 5.6.3 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V5-6-4.sql` database update script in your SQL Server Management Studio tool.

#### For versions 5.7.0 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V5-7-1.sql` database update script in your SQL Server Management Studio tool.

#### For versions 5.7.1 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V5-7-2.sql` database update script in your SQL Server Management Studio tool.

#### For versions 5.7.4 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V6-0-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 6.0.0 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V6-1-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 6.1.2 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V6-1-3.sql` database update script in your SQL Server Management Studio tool.

#### For versions 6.1.3 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V6-1-4.sql` database update script in your SQL Server Management Studio tool.

#### For versions 6.1.6 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V6-2-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 6.4.0 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V6-5-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 6.5.0 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V6-6-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 6.6.0 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V7-0-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 7.1.0 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V7-1-1.sql` database update script in your SQL Server Management Studio tool.

#### For versions 7.1.1 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V7-2-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 7.2.1 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V7-3-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 7.5.1 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V7-6-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 7.9.1 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V7-10-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 7.10.0 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V7-11-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 7.11.2 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V7-12-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 7.12.2 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V7-13-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 7.13.1 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V7-14-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 7.14.7 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V7-15-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 7.15.1 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V7-15-2.sql` database update script in your SQL Server Management Studio tool.

#### For versions 7.15.5 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V7-16-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 7.16.5 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V7-17-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 7.21.0 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V7-22-0.sql` database update script in your SQL Server Management Studio tool.

#### For all 7.x.x and earlier versions

Launch the `Update\Databases\MsSQLServer\Update_WFG-V8-0-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 8.0.1 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V8-0-2.sql` database update script in your SQL Server Management Studio tool.

#### For versions 8.0.2 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V8-0-3.sql` database update script in your SQL Server Management Studio tool.

#### For versions 8.0.x and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V8-1-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 8.1.3 and earlier

Launch the `Update\Databases\MsSQLServer\Update_WFG-V8-2-0.sql` database update script in your SQL Server Management Studio tool.

#### For versions 8.2.0 to 8.2.2&#x20;

There is no database update script to run.

## Configure IIS

{% hint style="info" %}
Domain users and the Windows accounts used to run the WorkflowGen IIS application pool and Engine service must have read and write permissions for the `\wfgen\app_data` folder.
{% endhint %}

### Update or create the application pool in .NET 4

The WorkflowGen website and web applications must now use an application pool in .NET 4. If this has not already been configured, do the following:

1. Install .NET Framework 4 on the server, if not already installed.<br>
2. Update the existing application pool or create a new application pool using .NET Framework 4 for:
   * The WorkflowGen website
   * `\wfgen`
   * `\wfgen\wfapps\webforms` (create this IIS web application if it isn’t already created)
   * `\wfgen\ws` <br>
3. If your application pool is set to use **Classic Managed Pipeline Mode**, make sure ASP.NET v4.0.30319 is set to `Allowed` in the IIS manager **ISAPI and CGI Restrictions** list.

## WorkflowGen Node.js-based web applications

To use the GraphQL, incoming webhooks, OpenID Connect Auth, and SCIM APIs, you must first install the following requirements:

* [Node.js v18.18.2 LTS](https://nodejs.org/download/release/v18.18.2/)
* [iisnode](https://github.com/Azure/iisnode/releases/tag/v0.2.21)
* [IIS URL Rewrite](https://www.iis.net/downloads/microsoft/url-rewrite)
* [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads)\
  ✏️ **Note:** This library is required if you encounter the error `The specified module could not be found` regarding the `edge` and `edge-js` libraries when accessing the `/wfgen/graphql`, `/wfgen/hooks`, or `/wfgen/scim` web apps.

{% hint style="info" %}

* Delete each Node.js-based application's `node_modules` folder (located under `\wfgen\auth`, `\wfgen\graphql`, `\wfgen\hooks`, and `\wfgen\scim`) before copying the files from the upgrade pack.
* After enabling GraphQL, incoming webhooks, OpenID Connect Auth, or SCIM, the WorkflowGen DLLs will be in use by Node.js, so they will be locked from being updated. In order to update the DLLs, it is necessary to stop IIS.
  {% endhint %}

### To enable WorkflowGen GraphQL:

1. In IIS, convert `/wfgen/graphql` to an application with a .NET 4 application pool (integrated pipeline).<br>
2. Configure the GraphQL application authentication mode:
   * **For Basic authentication:** Enable Basic authentication.
   * **For WorkflowGen Applicative authentication:**
     * Make sure the `/wfgen` web application already has WorkflowGen Applicative authentication enabled.
     * Enable Anonymous authentication.<br>
3. Update the WorkflowGen `web.config` file with the following parameters used by GraphQL:

   ```markup
   <add key="GraphqlMaxPageSize" value="100" />
   <add key="GraphqlMaxBatchSize" value="1000" />
   <add key="GraphqlDefaultPageNumber" value="1" />
   <add key="GraphqlDefaultPageSize" value="30" />
   <add key="GraphqlGraphiqlEnabled" value="N" />
   <add key="GraphqlLoadersCacheEnabled" value="Y" />
   <add key="GraphqlDebugEnabled" value="N" />
   <add key="GraphqlQueryTimeout" value="90000" />
   <add key="GraphqlOperationTimeout" value="30000" />
   <add key="GraphqlMaxOperationCount" value="10000" />
   <add key="GraphqlMaxInputFileSize" value="10240" />
   <add key="GraphqlMaxInputFileContentSize" value="0" />
   <add key="GraphqlInputFileDownloadTimeout" value="100000" />
   <add key="GraphqlInputFileAllowedFolders" value="" />
   <add key="GraphqlInputFileAllowedHttpUrls" value="" />
   ```

### To enable WorkflowGen incoming webhooks:

1. Update the WorkflowGen `web.config` file with the following parameters used by incoming webhooks:

   ```markup
   <add key="HooksDebugEnabled" value="N" />
   <add key="HooksOperationTimeout" value="30000" />
   <add key="HooksMaxInputFileSize" value="10240" />
   <add key="HooksMaxInputFileContentSize" value="0" />
   <add key="HooksInputFileDownloadTimeout" value="100000" />
   <add key="HooksInputFileAllowedFolders" value="" />
   <add key="HooksInputFileAllowedHttpUrls" value="" />
   ```
2. In IIS, convert `/wfgen/hooks` to an application with a .NET 4 application pool (integrated pipeline), and configure the hook application in **Anonymous** authentication mode.

{% hint style="info" %}
If your WorkflowGen is configured to use WorkflowGen Applicative authentication or a custom authentication, you must remove the authentication module from the `/hooks/web.config` file as follows:<br>

**For WorkflowGen Applicative authentication:**

```markup
<location path="hooks" inheritInChildApplications="false">
    <system.webServer>
        <modules>
            <remove name="ApplicationSecurityAuthenticationModule" />
        </modules>
    </system.webServer>
</location>
```

\
**For Custom authentication:**

```markup
<location path="hooks" inheritInChildApplications="false">
    <system.webServer>
        <modules>
            <remove name="MyCustomAuthModule" />
        </modules>
    </system.webServer>
</location>
```

{% endhint %}

### **To enable WorkflowGen SCIM:**

In IIS, convert `/wfgen/scim` to an application with a .NET 4 application pool (integrated pipeline), and configure the application in **Anonymous** authentication mode.

{% hint style="info" %}
If your WorkflowGen is configured to use WorkflowGen Applicative authentication or a custom authentication, you must remove the authentication module from the `/scim/web.config` file as follows:

\
**For WorkflowGen Applicative authentication:**

```markup
<location path="scim" inheritInChildApplications="false">
    <system.webServer>
        <modules>
            <remove name="ApplicationSecurityAuthenticationModule" />
        </modules>
    </system.webServer>
</location>
```

\
**For Custom authentication:**

```markup
<location path="scim" inheritInChildApplications="false">
    <system.webServer>
        <modules>
            <remove name="MyCustomAuthModule" />
        </modules>
    </system.webServer>
</location>
```

{% endhint %}

### **To enable WorkflowGen OpenID Connect Auth:**

In IIS, convert `/wfgen/auth` to an application with a .NET 4 application pool (integrated pipeline), and configure the application in **Anonymous** authentication mode.

{% hint style="info" %}
If your WorkflowGen is configured to use WorkflowGen Applicative authentication or a custom authentication, you must remove the authentication module from the `\auth\web.config` file as follows:

\
**For WorkflowGen Applicative authentication:**

```markup
<location path="auth" inheritInChildApplications="false">
    <system.webServer>
        <modules>
            <remove name="ApplicationSecurityAuthenticationModule" />
        </modules>
    </system.webServer>
</location>
```

\
**For Custom authentication:**

```markup
<location path="auth" inheritInChildApplications="false">
    <system.webServer>
        <modules>
            <remove name="MyCustomAuthModule" />
        </modules>
    </system.webServer>
</location>
```

{% endhint %}

## Restart the WorkflowGen server

Reboot your WorkflowGen web server.

## New location of workflow application temporary and log files

The following workflow applications store their files in these new locations:

* EFORMASPX: `\wfgen\App_Data\Files\EFormAspx`
* XMLTODATABASE: `\wfgen\App_Data\LogFiles\XmlToDatabase`
* XMLTRANS: `\wfgen\App_Data\Files\XmlTrans` and `\wfgen\App_Data\LogFiles\XmlTrans`
