# Installation via Wrangler (CLI)

### Prérequis

Pour réussir l'intégration avec Netacea, veuillez vous assurer que vous disposez des éléments suivants :

1. Installation de la dernière version de [Wrangler V2](https://developers.cloudflare.com/workers/wrangler/migration/v1-to-v2/update-v1-to-v2/), [Node.js](https://nodejs.org/en) (version 16.13.0 ou supérieure) et [Git ](https://git-scm.com/)sur votre machine.
2. Un compte Cloudflare actif avec accès au tableau de bord Cloudflare.
3. Un abonnement Cloudflare « Payant », afin d'éviter tout problème lié aux limites de requêtes des workers, etc.
4. Accès au produit Cloudflare Workers.

### **Étapes d'implémentation**

Les instructions détaillées sur GitHub pour récupérer le code, configurer et déployer le plugin Cloudflare Netacea sont disponibles [ici](https://github.com/Netacea/cloudflare-worker-template-typescript).

### Créer un worker local <a href="#edit-worker" id="edit-worker"></a>

Ouvrez l'invite de commandes Windows/PowerShell et accédez à un répertoire où vous pouvez enregistrer le code Netacea.

Dans ce répertoire, exécutez la commande suivante

{% code overflow="wrap" %}

```
wrangler generate netacea-cloudflare-worker https://github.com/netacea/cloudflare-worker-template-typescript
```

{% endcode %}

Cela utilisera wrangler pour créer (générer) un nouveau bundle de worker local en récupérant le dernier code GitHub de Netacea.

<figure><img src="https://899558619-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaRSpZrGcUHd5EHGjrrO5%2Fuploads%2Fgit-blob-eb5d13d51998c5b3a6052838c34b1e07d9b3143c%2Fimage%20(71).png?alt=media" alt=""><figcaption></figcaption></figure>

Vous pouvez vérifier cela en accédant au répertoire mentionné ci-dessus et en constatant la présence du worker au format suivant :

<div align="left"><figure><img src="https://899558619-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaRSpZrGcUHd5EHGjrrO5%2Fuploads%2Fgit-blob-4943f944ca9f4a61987a04f3c3f5aedc6609b48b%2Fimage%20(1)%20(1)%20(1)%20(1)%20(1)%20(1)%20(1)%20(1)%20(1)%20(1).png?alt=media" alt=""><figcaption></figcaption></figure></div>

### Configurer le worker

Ouvrez le répertoire src et modifiez le fichier `NetaceaConfig.json` pour qu'il corresponde à ce qui suit :

```json
{
    "apiKey": "API-KEY-PROVIDED-BY-NETACEA",
    "secretKey": "SECRET-KEY-PROVIDED-BY-NETACEA",
    "mitigationType": "PREFERRED-MITIGATION-TYPE",
    "ingestType": "KINESIS",
    "kinesis": {
      "kinesisStreamName": "NAME-PROVIDED-BY-NETACEA",
      "kinesisAccessKey": "KEY-PROVIDED-BY-NETACEA",
      "kinesisSecretKey": "KEY-PROVIDED-BY-NETACEA"
    },
    "cookieEncryptionKey": "ENCRYPTION-KEY-PROVIDED-BY-NETACEA",
    "netaceaCookieName": "_cookieName",
    "netaceaCaptchaCookieName": "_captchaCookieName",
    "enableDynamicCaptchaContentType": false,
    "timeout": 3000
  }
```

Remplacez les valeurs par les informations que Netacea vous a fournies et **enregistrez** le fichier.

{% hint style="info" %}
L'attribut `mitigationType` est utilisé pour déterminer le mode de l'intégration. Il peut prendre l'une des trois valeurs suivantes :

* "**INGEST**" - Ce mode d'intégration est uniquement en surveillance, ce qui signifie qu'aucune action d'atténuation ne sera exécutée. Ceci est recommandé pendant les POCs.
* "**MITIGATE**" - Il s'agit du mode d'intégration « normal », ce qui signifie que la solution Netacea surveillera et atténuera activement les requêtes.
* "**INJECT**" - Ce mode est utilisé dans les solutions personnalisées où l'action d'atténuation par Netacea sera uniquement une recommandation via des en-têtes HTTP ajoutés à la requête.
  {% endhint %}

{% hint style="info" %}
Le nom du cookie et du captcha doit être unique.

**Pour une sécurité accrue, n'incluez pas Netacea ou Mitigation dans ce nom.**
{% endhint %}

{% hint style="danger" %}
Les variables cookieEncryptionKey, netaceaCookieName et netaceaCaptchaCookieName sont utilisées pour renforcer la sécurité en dissimulant les noms et valeurs des cookies par défaut de Netacea à la vue du public.
{% endhint %}

### Configurer Wrangler

Accédez au répertoire racine du worker et modifiez le fichier `wrangler.toml` :

```json
name = "netacea-worker"
main = "./dist/worker.js"

account_id = "EXAMPLE_ACCOUNT_ID"
route = "EXAMPLE_ROUTE"

compatibility_date = "2023-05-04"

[observability]
enabled = true

```

Remplacez les valeurs par les informations appropriées et une fois prêt, **enregistrez** le fichier.

{% hint style="info" %}
L'[Account ID](https://developers.cloudflare.com/fundamentals/get-started/basic-tasks/find-account-and-zone-ids/#find-zone-and-account-ids) se trouve sur votre tableau de bord Cloudflare.

La [Route ](https://developers.cloudflare.com/workers/platform/triggers/routes/)fait référence au chemin sur lequel le worker doit être appliqué, par exemple "[www.example.com/\*](http://www.example.com/*)" et peut être modifiée après le déploiement.
{% endhint %}

{% hint style="info" %}
Activer l'option **Enregistrement automatique** lors de la modification des configurations serait utile.
{% endhint %}

### Installer/Mettre à jour npm

Dans le répertoire racine du worker, exécutez les deux commandes suivantes pour vous assurer que tous les modules node nécessaires sont installés/mis à jour

```powershell
npm i @netacea/cloudflare@latest
```

```
npm install
```

### Déployer le worker sur Cloudflare

Exécutez la commande suivante :

```
npm run deploy
```

Cela pourrait vous inviter à vous connecter à Cloudflare via votre navigateur et à autoriser l'accès à wrangler. Si c'est le cas, connectez-vous et autorisez l'accès.

<div align="left"><figure><img src="https://899558619-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaRSpZrGcUHd5EHGjrrO5%2Fuploads%2Fgit-blob-0386aac934dd8f1a966969128cd868201699fd19%2Fimage%20(7)%20(7).png?alt=media" alt=""><figcaption></figcaption></figure></div>

<figure><img src="https://899558619-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaRSpZrGcUHd5EHGjrrO5%2Fuploads%2Fgit-blob-f6c9f60eb7705f1773cd6c09056c6d3de2e62e68%2Fimage%20(2)%20(9).png?alt=media" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Vous pouvez utiliser la commande ci-dessus pour redéployer le même worker afin de le mettre à jour (par exemple, modifier les propriétés de configuration). Le dernier déploiement deviendra actif par défaut.
{% endhint %}

### Confirmer le déploiement

Connectez-vous à Cloudflare, ouvrez le tableau de bord, sélectionnez le domaine sur lequel vous souhaitez que le worker fonctionne et enfin sélectionnez « Workers Routes » dans le menu. Vous devriez pouvoir voir le worker nouvellement déployé, associé à la route du fichier `wrangler.toml`.

<figure><img src="https://899558619-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaRSpZrGcUHd5EHGjrrO5%2Fuploads%2Fgit-blob-12cb6d8d73e49f99772f9729b3666f42c80f9b6c%2FScreenshot%202024-12-13%20125030.png?alt=media" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Vous pouvez apporter des modifications au worker, à la route, à l'environnement et plus encore en cliquant sur **Modifier**, sans avoir besoin de redéployer le worker via wrangler.
{% endhint %}

Les déploiements de chaque worker peuvent être consultés en cliquant sur le Worker (par exemple test-netacea-worker) et en sélectionnant l'onglet Deployments :

<figure><img src="https://899558619-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaRSpZrGcUHd5EHGjrrO5%2Fuploads%2Fgit-blob-33ad1be8eccc8e959a613deea8c4cfba5f42a6fa%2FScreenshot%202024-12-13%20124156%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

Pour chaque worker, vous pouvez voir diverses métriques, les routes associées et avoir la possibilité de revenir à un déploiement précédent.
