# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.netacea.com/it/informazioni-sul-plugin-netacea/cloudflare/installation-and-configuration/installation-via-wrangler-cli.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
