# Installasjon via Wrangler (CLI)

### Forutsetninger

For å lykkes med integrasjon ved hjelp av Netacea, vennligst sørg for at du har:

1. Installert siste [Wrangler V2](https://developers.cloudflare.com/workers/wrangler/migration/v1-to-v2/update-v1-to-v2/), [Node.js](https://nodejs.org/en) (versjon 16.13.0 eller høyere) og [Git ](https://git-scm.com/)på maskinen din.
2. En aktiv Cloudflare-konto med tilgang til Cloudflare Dashboard.
3. Et "Betalt" Cloudflare-abonnement, for å unngå eventuelle problemer med worker-forespørselsgrenser osv.
4. Tilgang til Cloudflare Workers-produktet.

### **Implementeringstrinn**

De detaljerte GitHub-instruksjonene for å hente koden, konfigurere og distribuere Netacea Cloudflare-plugin finner du [her](https://github.com/Netacea/cloudflare-worker-template-typescript).

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

Åpne Windows ledetekst/PowerShell og naviger til en katalog hvor du kan lagre Netacea-koden.

I den katalogen, kjør følgende kommando

{% code overflow="wrap" %}

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

{% endcode %}

Dette vil bruke wrangler til å opprette (generere) en ny lokal worker-pakke ved å hente den nyeste Netacea GitHub-koden.

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

Du kan verifisere dette ved å besøke katalogen ovenfor og se workeren med følgende format:

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

Åpne src-katalogen og rediger `NetaceaConfig.json`-filen slik at den samsvarer med følgende:

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

Erstatt verdiene med detaljene som Netacea har gitt deg og **lagre** filen.

{% hint style="info" %}
Attributtet `mitigationType` brukes til å bestemme integrasjonens modus. Dette kan være én av tre verdier:

* "**INGEST**" - Denne integrasjonsmodusen er kun overvåking, noe som betyr at ingen mitigeringshandlinger vil bli utført. Dette anbefales under POC-er.
* "**MITIGATE**" - Dette er den "normale" integrasjonsmodusen, noe som betyr at Netacea-løsningen vil overvåke og aktivt mitigere forespørsler.
* "**INJECT**" - Denne modusen brukes i tilpassede løsninger der mitigeringshandlingen fra Netacea kun vil være en anbefaling ved hjelp av HTTP-headere lagt til forespørselen.
  {% endhint %}

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

**For økt sikkerhet, ikke inkluder Netacea eller Mitigation i dette navnet.**
{% endhint %}

{% hint style="danger" %}
Variablene cookieEncryptionKey, netaceaCookieName og netaceaCaptchaCookieName brukes for å øke sikkerheten ved å skjule Netaceas standard cookie-navn og verdier fra offentlig visning.
{% endhint %}

### Konfigurer Wrangler

Naviger til workerens rotkatalog 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

```

Erstatt verdiene med de aktuelle detaljene og når du er klar, **lagre** 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) finner du på Cloudflare Dashboard.

[Route ](https://developers.cloudflare.com/workers/platform/triggers/routes/)refererer til stien som workeren skal brukes på, f.eks. "[www.example.com/\*](http://www.example.com/*)" og kan redigeres etter distribusjon.
{% endhint %}

{% hint style="info" %}
Å aktivere **Autolagre**-alternativet mens du endrer konfigurasjoner vil være nyttig.
{% endhint %}

### Installer/Oppdater npm

I workerens rotkatalog, kjør følgende to kommandoer for å sikre at alle nødvendige node-moduler er installert/oppdatert

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

```
npm install
```

### Distribuer workeren til Cloudflare

Kjør følgende kommando:

```
npm run deploy
```

Dette kan be deg om å logge inn på Cloudflare via nettleseren din og gi tilgang til wrangler. I så fall, logg inn og gi tilgang.

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

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

{% hint style="info" %}
Du kan bruke kommandoen ovenfor til å redistribuere den samme workeren for å oppdatere den (f.eks. endre konfigurasjonsegenskapene). Den siste distribusjonen vil bli aktiv som standard.
{% endhint %}

### Bekreft distribusjon

Logg inn på Cloudflare, åpne dashboardet, velg domenet der du vil at workeren skal fungere, og velg til slutt "Workers Routes" fra menyen. Du bør kunne se den nylig distribuerte workeren, tilknyttet ruten fra `wrangler.toml`-filen.

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

{% hint style="info" %}
Du kan gjøre endringer i workeren, ruten, miljøet og mer ved å klikke **Rediger**, uten å måtte redistribuere workeren via wrangler.
{% endhint %}

Distribusjoner av hver worker kan sees ved å klikke på workeren (f.eks. test-netacea-worker) og velge fanen Deployments:

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

For hver worker kan du se ulike metrikker, de tilknyttede rutene og ha muligheten til å rulle tilbake til en tidligere distribusjon.
