# Installation manuelle

## Aperçu

La procédure suivante s'applique à l'installation à l'aide du pack d'installation manuelle de WorkflowGen.&#x20;

{% hint style="warning" %}
Les prérequis [du serveur Web](https://docs.workflowgen.com/tech-fr/9.0/configuration-requise#serveur-web) et [du serveur de base de données](https://docs.workflowgen.com/tech-fr/9.0/configuration-requise#serveur-base-de-donnees) doivent être satisfaits avant de procéder à l'installation suivante.
{% endhint %}

## Pack d’installation

Commencez par extraire le pack d’installation manuelle (`.zip`) dans un dossier temporaire du serveur Web de WorkflowGen (ex. : `DISQUE:\temp`).

Contenu du pack d’installation :

* `Databases` contient les scripts d’installation de bases de données pour MS SQL Server
* `Inetpub` contient les fichiers de l’application WorkflowGen
* `Program Files` contient les fichiers des applications des services Windows de WorkflowGen

## Architecture des fichiers et dossiers WorkflowGen

La structure recommandée du répertoire physique pour les fichiers et dossiers de l’application Web WorkflowGen devrait être sous `DISQUE:\Inetpub\wwwroot\wfgen`. Ce dossier contient les ressources statiques comme les images, les fichiers HTML, les données des processus et les applications utilisés par WorkflowGen.

1. Copiez le contenu du dossier source `Inetpub` dans votre dossier de destination `DISQUE:\Inetpub\wwwroot\wfgen`.<br>
2. Copiez le contenu du dossier source `Program Files\Advantys` dans votre dossier de destination `DISQUE:\Program Files` (ex. : `DISQUE:\Program Files\Advantys\WorkflowGen\Services\bin`).<br>

   ✏️ **Note :** Si vous avez déjà une autre version de WorkflowGen installée sur le même serveur et que vous voulez préserver vos services WorkflowGen antérieurs, nous vous suggérons de choisir un autre répertoire pour la version 9 (ex. : `DISQUE:\Program Files\Advantys\WorkflowGen v9`).

## Création de la base de données

{% hint style="warning" %}
WorkflowGen ne supporte pas le classement sensible à la casse. Vous devez donc configurer la base de données pour qu'elle soit insensible à la casse afin d'éviter les erreurs.
{% endhint %}

### Création de la base de données MS SQL Server

#### Option 1 : Créez la base de données manuellement avec le script SQL `create.sql`

1. Ouvrez l'outil SQL Server Management Studio et connectez-vous à votre serveur de base de données avec un compte administrateur (ex. : `SA`).<br>
2. Créez une nouvelle base de données (ex. : `WFGEN`).<br>
3. Créez un nouveau compte utilisateur SQL Server (ex. : `WFGEN_USER`).<br>
4. Accordez à cet utilisateur les autorisations `db_datawriter` et `db_datareader` pour la base de données `WFGEN`.<br>
5. Ouvrez le dossier source `DISQUE:\temp\manual\Databases\MsSQLServer` et exécutez le script `create.sql` sur la nouvelle instance de base de données.

#### Option 2 : Créez la base de données manuellement avec des scripts SQL

1. Ouvrez l'outil MS SQL Server Management Studio et connectez-vous à votre instance MS SQL Server avec un compte administrateur (ex. : `SA`).<br>
2. Créez une nouvelle base de données (ex. : `WFGEN`).<br>
3. Créez un nouveau compte utilisateur SQL Server (ex. : `WFGEN_USER`).<br>
4. Accordez à cet utilisateur les autorisations `db_datawriter` et `db_datareader` pour la base de données `WFGEN`.<br>
5. Ouvrez le dossier source `DISQUE:\temp\pack\Databases\MsSQLServer` et exécutez le script de création de base de données `create.sql` sur la nouvelle instance de la base de données.

### Configuration de la base de données SQL Azure

La base de données SQL Azure doit être créée et configurée manuellement.  Voir la section [Configuration de la base de données SQL Azure](https://docs.advantys.com/workflowgen-pour-azure/v/8.0.0/configuration-de-la-base-de-donnees-sql-azure) dans le guide [WorkflowGen pour Azure](https://docs.advantys.com/workflowgen-pour-azure/v/8.0.0/) pour obtenir des instructions sur la façon de procéder.

## Création du compte administrateur de WorkflowGen

WorkflowGen nécessite un compte Windows NT ou Active Directory valide. Ce compte sera utilisé pour administrer WorkflowGen mais ne nécessite pas de droit d’administration NT ou Active Directory.

{% hint style="info" %}

* Vous pouvez utiliser un compte existant ou en créer un nouveau (ex. : `Domain\wfgen_admin`).
* Si vous utilisez un compte différent que `wfgen_admin`, vous devrez modifier sa valeur dans la base de données pour l’utilisateur `WorkflowGen Administrator`. Ouvrez le contenu de la table **Users**, retrouvez l’enregistrement avec la valeur `wfgen_admin` pour la colonne **USERNAME**, puis changez sa valeur avec le nom d’utilisateur que vous aurez choisi.
  {% endhint %}

## Configuration Web de WorkflowGen

1. Ouvrez et éditez le fichier de configuration de WorkflowGen `DRIVE:\Inetpub\wwwroot\wfgen\web.config`.<br>
2. Mettez à jour la chaîne de connexion à la base de données.
   * **MS SQL Server :**`<add name="MainDbSource" connectionString="Data Source=localhost;Initial Catalog=WFGEN;User ID=WFGEN_USER;Password=Admin123!;" providerName="System.Data.SqlClient" />`
   * **Base de données Azure SQL :** Voir la section [Configuration de la base de données SQL Azure](https://docs.advantys.com/workflowgen-pour-azure/configuration-de-la-base-de-donnees-sql-azure) dans le guide [WorkflowGen pour Azure](https://docs.advantys.com/workflowgen-pour-azure/). <br>
3. Mettez à jour le nom d’utilisateur du compte `WorkflowGen Administrator` pour autoriser l’accès au panneau de configuration (ex. : `<add key="ApplicationConfigAllowedUsersLogin" value="wfgen_admin" />`).<br>
4. Mettez à jour l'URL de l'application (ex. : `<add key="ApplicationUrl" value="http://votresite/wfgen" />`).<br>
5. Ajoutez une clé de cryptage alphanumérique à 32 caractères (ex. : `<add key="ApplicationSecurityPasswordSymmetricEncryptionKey" value="XXXXXXXXXXXXXXXXXXX....." />`).

Pour plus d'informations sur les autres paramètres de configuration, voir l'annexe [Paramètres de configuration Web et d'application](https://docs.workflowgen.com/tech-fr/9.0/annexe-parametres-de-configuration-web-et-dapplication).

## Installation des services Windows de WorkflowGen

### Notes

* L’utilisateur ou l’identité utilisé pour exécuter les services Windows de WorkflowGen doit être un administrateur, faire partie du groupe d’administrateurs, ou être un compte système de Windows (par exemple, `Local System`). Pour vérifier cela, exécutez `services.msc`.<br>
* Si vous avez spécifié un chemin d’installation personnalisé, vous devez changer le chemin dans le script `DISQUE:\Program Files\Advantys[CustomWorkflowGen]\Services\bin\winsvc-install.cmd` (ex. : `%windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /i "C:\Program Files\Advantys\Custom WorkflowGen]^\Services\bin\WfgDirectoriesSyncService.exe"`).<br>
* Si vous installez ces services avec des services WorkflowGen antérieurs sur le même serveur, vous devez spécifier un nouveau nom pour le service (ex. : `WorkflowGenEngineServiceV7`) pour les services Engine et Directory dans leurs fichiers de configuration (`[WfgWorkflowEngineService.exe].config` : `<add key="ServiceName" value="WorkflowGenEnginerServiceV7"></add>`) et fichiers script (`winsvc-install.cmd` : renommez toutes les instances de `[WorkflowGenEngineService]` à `[WorkflowGenEngineServiceV7]`). (Voir la section [Configuration de plusieurs instances de WorkflowGen](https://docs.workflowgen.com/tech-fr/9.0/configuration-avancee#configuration-de-plusieurs-instances-de-workflowgen) pour plus de renseignements et des instructions pour configurer plusieurs instances de WorkflowGen sur le même serveur.)

### Installation

1. Éditez le fichier de configuration du service moteur `DISQUE:\Program Files\Advantys\WorkflowGen\Services\bin\WfgWorkflowEngineService.exe.config`.<br>
2. Indiquez le chemin du fichier de configuration de WorkflowGen (ex. : `<add key="WebConfigPath" value="DISQUE:\inetpub\wwwroot\wfgen\web.config"/>`).<br>
3. Éditez le fichier de configuration du service de synchronisation d’annuaire `DISQUE:\Program Files\Advantys\WorkflowGen\Services\bin\WfgDirectoriesSyncService.exe.config`.<br>
4. Indiquez le chemin du fichier de configuration de WorkflowGen (ex : `<add key="WebConfigPath" value="DISQUE:\inetpub\wwwroot\wfgen\web.config"/>`).<br>

   ✏️ **Note :** Il se peut que `WfgWorkflowEngineService.exe` et `WfgDirectoriesSyncService.exe` soient bloqués. Pour vérifier, faites un clic droit sur eux et choisissez **Propriétés**. Si la section **Sécurité** est affichée en bas dans l’onglet **Général**, ces exécutables sont bloqués; dans ce cas, cliquez sur **Débloquer**.<br>
5. Exécutez le fichier `DISQUE:\Program Files\Advantys\WorkflowGen\Services\bin\winsvc-install.cmd`.

## Configuration de IIS

### Création du groupe d'applications

On recommande d’isoler WorkflowGen d’autres applications en créant son propre groupe d’applications et en associant toutes les applications déclarées avec le nouveau groupe d’applications.

{% hint style="info" %}
Les utilisateurs du domaine et les comptes Windows utilisés pour exécuter le pool d'applications IIS WorkflowGen et le service de moteur doivent disposer des permissions de lecture et d'écriture pour le dossier  `\wfgen\app_data`.
{% endhint %}

1. Dans **IIS Manager**, cliquez sur **Application pools**. Dans le volet de droite, faites un clic droit sur **Add application pool**, sélectionnez-le et donnez-lui un nom (ex. : `WorkflowGen`).<br>
2. Sélectionnez la version **.NET Framework 4**.<br>
3. Sélectionnez **Integrated pipeline mode**.<br>
4. Cliquez sur **OK**.

### Création du site Web (si WorkflowGen est configuré sur un nouveau site Web)

1. Lancez **IIS Manager** et déployez l'arborescence sous le nom du serveur IIS sur lequel sera créé le nouveau site.<br>
2. Faites un clic droit sur l'icône **Sites** et sélectionnez **Add Web Site**. Inscrivez le nom du site, sélectionnez son groupe d'applications (s'il ne s'agit pas du groupe par défaut), et inscrivez le chemin du répertoire racine (cliquez sur **Browse** et sélectionnez le dossier `\wwwroot`, habituellement `DISQUE:\Inetpub\wwwroot\wfgen`).<br>
3. Sélectionnez le lien comme `http` ou `https` (`https` nécessite un certificat SSL). Sélectionnez un port (`80` par défaut) et (ou) un port hôte. Veuillez contacter l'administrateur IIS pour revoir vos options pour la configuration appropriée du site Web.

### Configuration du site Web

#### **Document par défaut**

Le type de document par défaut `default.aspx` doit être créé s'il n'existe pas. Par défaut, ce document devrait exister sur un serveur IIS exécutant .NET.

Pour vérifier ceci, cliquez sur l'icône du site, et assurez-vous que le volet de droite affiche **Features view** (un onglet au bas du volet vous permet de basculer entre **Features** et **Content**). Double-cliquez sur l'icône **Default document**. Si `default.aspx` est absent de la liste, ajoutez-le au début de la liste à séparations par virgules affichées. Pour améliorer les performances, vous pouvez déplacer `default.aspx` vers le haut de la liste, s'il n'y est pas déjà.

#### Authentification

1. Cliquez sur l'icône du site, et assurez-vous que le volet de droite affiche **Features view**.<br>
2. Double-cliquez sur l'icône **Authentication**.<br>
3. Faites un clic droit sur **Anonymous authentication** et sélectionnez **Disable**.<br>
4. Faites un clic droit sur **Basic authentication** et sélectionnez **Enable**. Vous pourrez changer la méthode d'authentification en suivant les instructions de la section [Sécurité](https://docs.workflowgen.com/tech-fr/9.0/securite).

### Création de l'application WorkflowGen

1. Dans **IIS Manager**, ouvrez le répertoire `\wwwroot`, faites un clic droit sur `wfgen` et sélectionnez **Convert to application**.<br>
2. Sélectionnez le groupe d'applications WorkflowGen s'il n'est pas la valeur par défaut, puis cliquez sur **OK**.

### Création d'applications et de services de workflow

Les applications `\wfgen\ws` et `\wfgen\WfApps\WebForms` doivent être créées. Répétez les étapes que vous avez suivi pour `\wfgen` dans la section précédente.

### Restrictions ISAPI et CGI

Si vous utilisez IIS 8 ou supérieur et si votre groupe d’applications est configuré en mode **Classic Managed Pipeline**, assurez-vous que ASP.NET v4.0.30319 est réglé sur `Allowed` dans la liste **ISAPI and CGI Restrictions** dans IIS.

## Configuration des droits d’accès aux fichiers

### Droits des fichiers

Les droits des fichiers peuvent être configurés de la manière suivante pour les utilisateurs de WorkflowGen :

* Répertoire `DRIVE:\Inetpub\wwwroot\wfgen` : permission de modification pour tous les utilisateurs

Selon votre méthode d'authentification (voir la section [Sécurité](https://docs.workflowgen.com/tech-fr/9.0/securite)), l'identité de l'application WorkflowGen peut être :

* Les utilisateurs Windows correspondants
* L'identité de l'application groupe ASP.NET ou IIS

## Configuration du site Web racine de WorkflowGen pour une redirection automatique vers l'application Web `wfgen`

Si vous souhaitez que votre site Web racine WorkflowGen (p.ex, `https://serveur`) se redirige automatiquement vers l'application Web `https://serveur/wfgen`, suivez la procédure ci-dessous.

{% hint style="info" %}
À partir de la version 7.15.0, l'installation PowerShell de WorkflowGen est livrée avec cette configuration pré-installée sur votre serveur WorkflowGen. Cette procédure s'applique lors de l'installation manuelle de WorkflowGen ou de la mise à jour d'un serveur WorkflowGen précédent existant.
{% endhint %}

1. Assurez-vous que l'outil [URL Rewrite](https://www.iis.net/downloads/microsoft/url-rewrite) est déjà installé sur votre serveur WorkflowGen.<br>
2. Créez ou mettez à jour le fichier `web.config` dans le dossier **racine** de votre site Web (p.ex. `DISQUE:\inetpub\wwwroot\web.config`).\
   \
   ⚠️ **Attention :** Il ne s'agit **pas** du même fichier `web.config` que le fichier `web.config` principal de WorkflowGen (situé dans `DISQUE:\inetpub\wwroot\wfgen\web.config`).<br>
3. Définissez le nœud de la règle de réécriture comme indiqué ci-dessous (`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>
   ```

## Applications Web basées sur Node.js

Pour utiliser les API GraphQL, Webhooks entrants, OpenID Connect Auth et SCIM facultatives, vous devez d'abord installer les prérequis suivants :

* [Node.js v18.20.4](https://nodejs.org/download/release/v18.20.4/)
* [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/fr-fr/help/2977003/the-latest-supported-visual-c-downloads)\
  ✏️ **Note :** Cette bibliothèque est requise si vous rencontrez l'erreur `Le module spécifié est introuvable` (`The specified module could not be found`) concernant les bibliothèques `edge` et `edge-js` lors de l'accès aux applications Web `/wfgen/graphql/`, `/wfgen/hooks` ou `/wfgen/scim`.

{% hint style="info" %}
Après l’activation des applications Web basées sur Node.js, les DLL de WorkflowGen seront utilisés par Node.js et ils seront donc verrouillés et ne pourront pas être modifiés. Si vous voulez les modifier, il sera nécessaire d’arrêter IIS.
{% endhint %}

### Activation de GraphQL

1. Dans IIS, convertissez `/wfgen/graphql` en application avec un pool d’applications en .NET 4 (mode pipeline intégré).<br>
2. Configurez le mode d’authentification de l’application GraphQL :
   * **Pour l’authentification Windows ou de base :** Activez l’authentification de base.
   * **Pour l’authentification applicative WorkflowGen :**
     * Assurez-vous que l’authentification applicative WorkflowGen est déjà appliquée à l’application Web `/wfgen`
     * Appliquez l’authentification anonyme.

### Activation des webhooks entrants

Dans IIS, convertissez `/wfgen/hooks` en application avec un pool d’applications en .NET 4 (mode pipeline intégré), et ensuite configurez l’application webhook en mode d’authentification anonyme.

{% hint style="info" %}
Si votre WorkflowGen est configuré avec l’authentification applicative WorkflowGen ou une authentification personnalisée, vous devez supprimer le module d’authentification du fichier `/hooks/web.config`  en définissant un nœud `<location>` dans le nœud `<configuration>`, comme suit :

#### **Pour l'authentification applicative WorkflowGen :**

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

#### **Pour l'authentification personnalisée :**&#x20;

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

{% endhint %}

### Activation d'OpenID Connect Auth

Dans IIS, convertissez `/wfgen/auth` en application avec un pool d’applications en .NET 4 (mode pipeline intégré), et ensuite configurez l’application webhook en mode d’authentification **Anonyme**.

{% hint style="info" %}
Si votre WorkflowGen est configuré avec l’authentification applicative WorkflowGen ou une authentification personnalisée, vous devez supprimer le module d’authentification du fichier `/auth/web.config` en définissant un nœud `<location>` dans le nœud `<configuration>`, comme suit :

#### **Pour l'authentification applicative WorkflowGen :**

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

#### **Pour l'authentification personnalisée :**

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

{% endhint %}

### Activation de SCIM

Dans IIS, convertissez `/wfgen/scim` en application avec un pool d’applications en .NET 4 (mode pipeline intégré), et ensuite configurez l’application webhook en mode d’authentification **Anonyme**.

{% hint style="info" %}
Si votre WorkflowGen est configuré avec l’authentification applicative WorkflowGen ou une authentification personnalisée, vous devez supprimer le module d’authentification du fichier `/scim/web.config` en définissant un nœud `<location>` dans le nœud `<configuration>`, comme suit :

#### **Pour l'authentification applicative WorkflowGen :**

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

#### **Pour l'authentification personnalisée :**

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

{% endhint %}

###
