# Installation via Wrangler (CLI)

### Forudsætninger

For at gennemføre integrationen med Netacea skal du sikre, at du har:

1. Installeret den nyeste [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 eller højere) og [Git ](https://git-scm.com/)på din maskine.
2. En aktiv Cloudflare-konto med adgang til Cloudflare Dashboard.
3. Et "Paid" Cloudflare-abonnement for at undgå eventuelle problemer med worker request-limits osv.
4. Adgang til Cloudflare Workers-produktet.

### **Implementeringstrin**

De detaljerede GitHub-instruktioner til at hente koden, konfigurere og implementere Netacea Cloudflare-plugin'et kan findes [her](https://github.com/Netacea/cloudflare-worker-template-typescript).

### Opret lokal worker <a href="#edit-worker" id="edit-worker"></a>

Åbn Windows Command-Prompt/PowerShell og naviger til en mappe, hvor du kan gemme Netacea-koden.

I den mappe skal du udføre følgende kommando

{% code overflow="wrap" %}

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

{% endcode %}

Dette vil bruge wrangler til at oprette (generere) en ny lokal worker-bundle ved at hente den nyeste Netacea GitHub-kode.

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

Du kan bekræfte dette ved at besøge ovenstående mappe og se worker'en med følgende format:

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

### Konfigurer worker'en

Åbn src-mappen og rediger `NetaceaConfig.json`-filen, så den matcher nedenstående:

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

Erstat værdierne med de oplysninger, som Netacea har givet dig, og **gem** filen.

{% hint style="info" %}
Attributten `mitigationType` bruges til at bestemme integrationens tilstand. Den kan have én af tre værdier:

* "**INGEST**" - Denne integrationstilstand er kun overvågning, hvilket betyder, at ingen mitigeringshandlinger vil blive udført. Dette anbefales under POC'er.
* "**MITIGATE**" - Dette er den "normale" integrationstilstand, hvilket betyder, at Netacea-løsningen vil overvåge og aktivt mitigere forespørgsler.
* "**INJECT**" - Denne tilstand bruges i tilpassede løsninger, hvor mitigeringshandlingen fra Netacea kun vil være en anbefaling ved hjælp af HTTP-headers tilføjet til forespørgslen.
  {% endhint %}

{% hint style="info" %}
Cookie- og captcha-navnet skal være unikt.

**For øget sikkerhed bør du ikke inkludere Netacea eller Mitigation i dette navn.**
{% endhint %}

{% hint style="danger" %}
Variablerne cookieEncryptionKey, netaceaCookieName og netaceaCaptchaCookieName bruges til at øge sikkerheden ved at skjule Netaceas standard cookie-navne og -værdier fra offentlig visning.
{% endhint %}

### Konfigurer Wrangler

Naviger til worker'ens rodmappe og rediger `wrangler.toml`-filen:

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

account_id = "EXAMPLE_ACCOUNT_ID"
route = "EXAMPLE_ROUTE"

compatibility_date = "2023-05-04"

[observability]
enabled = true

```

Erstat værdierne med de relevante oplysninger, og når du er klar, **gem** filen.

{% hint style="info" %}
[Account ID](https://developers.cloudflare.com/fundamentals/get-started/basic-tasks/find-account-and-zone-ids/#find-zone-and-account-ids) kan findes på dit Cloudflare Dashboard.

[Route ](https://developers.cloudflare.com/workers/platform/triggers/routes/)refererer til stien, som worker'en skal anvendes på, f.eks. "[www.example.com/\*](http://www.example.com/*)" og kan redigeres efter implementering.
{% endhint %}

{% hint style="info" %}
Det vil være nyttigt at aktivere **Auto Save**-funktionen, mens du ændrer konfigurationer.
{% endhint %}

### Installer/opdater npm

I worker'ens rodmappe skal du udføre følgende to kommandoer for at sikre, at alle nødvendige node-moduler er installeret/opdateret

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

```
npm install
```

### Implementer worker'en til Cloudflare

Udfør følgende kommando:

```
npm run deploy
```

Dette kan bede dig om at logge ind på Cloudflare via din browser og give adgang til wrangler. Hvis det sker, skal du logge ind og give adgang.

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

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

{% hint style="info" %}
Du kan bruge ovenstående kommando til at genimplementere den samme worker for at opdatere den (f.eks. ændre konfigurationsegenskaberne). Den seneste implementering vil som standard blive aktiv.
{% endhint %}

### Bekræft implementeringen

Log ind på Cloudflare, åbn dashboardet, vælg det domæne, hvor du vil have worker'en til at fungere, og vælg til sidst "Workers Routes" fra menuen. Du skulle kunne se den nyligt implementerede worker, associeret med ruten fra `wrangler.toml`-filen.

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

{% hint style="info" %}
Du kan foretage ændringer til worker'en, ruten, miljøet og mere ved at klikke på **Edit**, uden at skulle genimplementere worker'en via wrangler.
{% endhint %}

Implementeringer af hver worker kan ses ved at klikke på Worker'en (f.eks. test-netacea-worker) og vælge fanen Deployment's:

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

For hver worker kan du se forskellige metrikker, de associerede ruter og har mulighed for at rulle tilbage til en tidligere implementering.
