# Installatie via Wrangler (CLI)

### Vereisten

Voor een succesvolle integratie met Netacea dient u te beschikken over:

1. De nieuwste [Wrangler V2](https://developers.cloudflare.com/workers/wrangler/migration/v1-to-v2/update-v1-to-v2/), [Node.js](https://nodejs.org/en) (versie 16.13.0 of hoger) en [Git ](https://git-scm.com/)geïnstalleerd op uw machine.
2. Een actief Cloudflare-account met toegang tot het Cloudflare Dashboard.
3. Een "Paid" Cloudflare-abonnement om problemen met worker request-limieten e.d. te voorkomen.
4. Toegang tot het Cloudflare Workers-product.

### **Implementatiestappen**

De gedetailleerde GitHub-instructies voor het ophalen van de code, configureren en deployen van de Netacea Cloudflare-plugin vindt u [hier](https://github.com/Netacea/cloudflare-worker-template-typescript).

### Lokale worker aanmaken <a href="#edit-worker" id="edit-worker"></a>

Open Windows Command-Prompt/PowerShell en navigeer naar een directory waar u de Netacea-code kunt opslaan.

Voer binnen die directory het volgende commando uit

{% code overflow="wrap" %}

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

{% endcode %}

Dit gebruikt wrangler om een nieuwe lokale worker-bundel aan te maken (genereren) door de nieuwste Netacea GitHub-code op te halen.

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

U kunt dit verifiëren door naar de bovenstaande directory te gaan en de worker met het volgende formaat te bekijken:

<div align="left"><figure><img src="https://2008922765-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKEeLcLvicQ5Zj7Chjz6g%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>

### De worker configureren

Open de src-directory en bewerk het `NetaceaConfig.json`-bestand zodat het overeenkomt met het onderstaande:

```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
  }
```

Vervang de waarden door de gegevens die Netacea u heeft verstrekt en **sla** het bestand op.

{% hint style="info" %}
Het attribuut `mitigationType` wordt gebruikt om de modus van de integratie te bepalen. Dit kan een van drie waarden zijn:

* "**INGEST**" - Deze integratiemodus is alleen voor monitoring, wat betekent dat er geen mitigatie-acties worden uitgevoerd. Dit wordt aanbevolen tijdens POC's.
* "**MITIGATE**" - Dit is de "normale" integratiemodus, wat betekent dat de Netacea-oplossing requests monitort en actief mitigeert.
* "**INJECT**" - Deze modus wordt gebruikt in aangepaste oplossingen waarbij de mitigatie-actie door Netacea slechts een aanbeveling is via HTTP-headers die aan het request worden toegevoegd.
  {% endhint %}

{% hint style="info" %}
De cookie- en captcha-naam dienen uniek te zijn.

**Neem voor extra beveiliging geen Netacea of Mitigation op in deze naam.**
{% endhint %}

{% hint style="danger" %}
De variabelen cookieEncryptionKey, netaceaCookieName en netaceaCaptchaCookieName worden gebruikt om de beveiliging te verhogen door de standaard cookienamen en -waarden van Netacea te verbergen voor openbaar zicht.
{% endhint %}

### Wrangler configureren

Navigeer naar de root-directory van de worker en bewerk het `wrangler.toml`-bestand:

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

account_id = "EXAMPLE_ACCOUNT_ID"
route = "EXAMPLE_ROUTE"

compatibility_date = "2023-05-04"

[observability]
enabled = true

```

Vervang de waarden door de juiste gegevens en **sla** het bestand op wanneer u klaar bent.

{% hint style="info" %}
De [Account ID](https://developers.cloudflare.com/fundamentals/get-started/basic-tasks/find-account-and-zone-ids/#find-zone-and-account-ids) vindt u op uw Cloudflare Dashboard.

De [Route ](https://developers.cloudflare.com/workers/platform/triggers/routes/)verwijst naar het pad waarop de worker moet worden toegepast, bijv. "[www.example.com/\*](http://www.example.com/*)" en kan na deployment worden bewerkt.
{% endhint %}

{% hint style="info" %}
Het inschakelen van de optie **Auto Save** tijdens het wijzigen van configuraties is aan te raden.
{% endhint %}

### npm installeren/bijwerken

Voer binnen de root-directory van de worker de volgende twee commando's uit om te zorgen dat alle benodigde node modules zijn geïnstalleerd/bijgewerkt

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

```
npm install
```

### De worker deployen naar Cloudflare

Voer het volgende commando uit:

```
npm run deploy
```

Dit kan u vragen om via uw browser in te loggen bij Cloudflare en toegang te verlenen aan wrangler. Log zo nodig in en verleen toegang.

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

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

{% hint style="info" %}
U kunt het bovenstaande commando gebruiken om dezelfde worker opnieuw te deployen om deze bij te werken (bijv. het wijzigen van de configuratie-eigenschappen). De laatste deployment wordt standaard actief.
{% endhint %}

### Deployment bevestigen

Log in bij Cloudflare, open het dashboard, selecteer het domein waarop u de worker wilt laten werken en selecteer ten slotte "Workers Routes" in het menu. U zou de nieuw gedeployde worker moeten zien, gekoppeld aan de route uit het `wrangler.toml`-bestand.

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

{% hint style="info" %}
U kunt wijzigingen aanbrengen aan de worker, route, omgeving en meer door op **Edit** te klikken, zonder de worker opnieuw te hoeven deployen via wrangler.
{% endhint %}

Deployments van elke worker zijn te zien door op de Worker te klikken (bijv. test-netacea-worker) en het tabblad Deployment's te selecteren:

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

Voor elke worker kunt u diverse metrics bekijken, de gekoppelde routes zien en de optie hebben om terug te rollen naar een eerdere deployment.
