# Installazione tramite Wrangler (CLI)

### Prerequisiti

Per integrare correttamente Netacea, assicurati di disporre di:

1. [Wrangler V2](https://developers.cloudflare.com/workers/wrangler/migration/v1-to-v2/update-v1-to-v2/), [Node.js](https://nodejs.org/en) (versione 16.13.0 o successiva) e [Git ](https://git-scm.com/)installati sulla tua macchina.
2. Un account Cloudflare attivo con accesso alla Dashboard di Cloudflare.
3. Un abbonamento Cloudflare "Paid", per evitare eventuali problemi con i limiti di richieste dei worker, ecc.
4. Accesso al prodotto Cloudflare Workers.

### **Passaggi di implementazione**

Le istruzioni dettagliate su GitHub per scaricare il codice, configurare e distribuire il plugin Netacea per Cloudflare sono disponibili [qui](https://github.com/Netacea/cloudflare-worker-template-typescript).

### Creare un worker locale <a href="#edit-worker" id="edit-worker"></a>

Apri il Prompt dei comandi/PowerShell di Windows e accedi a una directory in cui puoi salvare il codice Netacea.

All'interno di quella directory esegui il seguente comando

{% code overflow="wrap" %}

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

{% endcode %}

Questo utilizzerà wrangler per creare (generare) un nuovo bundle worker locale scaricando il codice GitHub Netacea più recente.

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

Puoi verificare accedendo alla directory sopra indicata e visualizzando il worker con il seguente formato:

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

### Configurare il worker

Apri la directory src e modifica il file `NetaceaConfig.json` come indicato di seguito:

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

Sostituisci i valori con i dettagli forniti da Netacea e **salva** il file.

{% hint style="info" %}
L'attributo `mitigationType` viene utilizzato per determinare la modalità dell'integrazione. Può assumere uno dei tre valori seguenti:

* "**INGEST**" - Questa modalità di integrazione è solo di monitoraggio, il che significa che non verranno eseguite azioni di mitigazione. È consigliata durante i POC.
* "**MITIGATE**" - Questa è la modalità di integrazione "normale", il che significa che la soluzione Netacea monitorerà e mitigherà attivamente le richieste.
* "**INJECT**" - Questa modalità viene utilizzata in soluzioni personalizzate in cui l'azione di mitigazione di Netacea sarà solo una raccomandazione tramite header HTTP aggiunti alla richiesta.
  {% endhint %}

{% hint style="info" %}
I nomi del cookie e del captcha devono essere univoci.

**Per una maggiore sicurezza, non includere Netacea o Mitigation in questo nome.**
{% endhint %}

{% hint style="danger" %}
Le variabili cookieEncryptionKey, netaceaCookieName e netaceaCaptchaCookieName vengono utilizzate per aumentare la sicurezza nascondendo i nomi e i valori predefiniti dei cookie Netacea dalla visualizzazione pubblica.
{% endhint %}

### Configurare Wrangler

Accedi alla directory root del worker e modifica il file `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

```

Sostituisci i valori con i dettagli appropriati e, una volta pronto, **salva** il file.

{% 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) è disponibile nella Dashboard di Cloudflare.

La [Route ](https://developers.cloudflare.com/workers/platform/triggers/routes/)si riferisce al percorso a cui deve essere applicato il worker, ad es. "[www.example.com/\*](http://www.example.com/*)" e può essere modificata dopo la distribuzione.
{% endhint %}

{% hint style="info" %}
Abilitare l'opzione **Auto Save** durante la modifica delle configurazioni può essere utile.
{% endhint %}

### Installare/Aggiornare npm

All'interno della directory root del worker, esegui i seguenti due comandi per assicurarti che tutti i moduli node necessari siano installati/aggiornati

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

```
npm install
```

### Distribuire il worker su Cloudflare

Esegui il seguente comando:

```
npm run deploy
```

Potrebbe essere richiesto di effettuare l'accesso a Cloudflare tramite il browser e consentire l'accesso a wrangler. In tal caso, effettua l'accesso e consenti l'accesso.

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

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

{% hint style="info" %}
Puoi utilizzare il comando sopra per ridistribuire lo stesso worker al fine di aggiornarlo (ad es. modificando le proprietà di configurazione). L'ultima distribuzione diventerà attiva per impostazione predefinita.
{% endhint %}

### Confermare la distribuzione

Accedi a Cloudflare, apri la dashboard, seleziona il dominio su cui desideri che il worker funzioni e infine seleziona "Workers Routes" dal menu. Dovresti essere in grado di vedere il worker appena distribuito, associato alla route del file `wrangler.toml`.

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

{% hint style="info" %}
Puoi apportare modifiche al worker, alla route, all'ambiente e altro facendo clic su **Edit**, senza la necessità di ridistribuire il worker tramite wrangler.
{% endhint %}

Le distribuzioni di ciascun worker possono essere visualizzate facendo clic sul Worker (ad es. test-netacea-worker) e selezionando la scheda Deployment's:

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

Per ogni worker, puoi visualizzare varie metriche, le route associate e avere l'opzione di eseguire il rollback a una distribuzione precedente.
