---
url: 'https://dxpr.com/it/hc/documentation/learn-dxpr-builder/getting-started/behind-a-firewall'
title: 'Firewall e residenza dei dati | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T13:42:04+00:00'
updated: '2026-10-24T17:19:22+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: 'DXPR Builder conserva le tue pagine nel tuo database Drupal. Contatta i servizi DXPR per controlli di licenza, asset dell’editor e richieste AI. Questa pagina elenca ogni connessione, cosa trasporta ciascuna, dove girano i modelli DXAI Kavya, come è conservata la chiave prodotto, e cosa funziona quando l’accesso in uscita è limitato.'
tags:
  - 'Meet compliance requirements'
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T17:19:22+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: 'Firewall e residenza dei dati'
      description: 'DXPR Builder conserva le tue pagine nel tuo database Drupal. Contatta i servizi DXPR per controlli di licenza, asset dell’editor e richieste AI. Questa pagina elenca ogni connessione, cosa trasporta ciascuna, dove girano i modelli DXAI Kavya, come è conservata la chiave prodotto, e cosa funziona quando l’accesso in uscita è limitato.'
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T13:42:04+0000'
      dateModified: '2026-10-24T17:19:22+0000'
      author:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      mainEntityOfPage: 'https://dxpr.com/it/hc/documentation/learn-dxpr-builder/getting-started/behind-a-firewall'
      articleSection: 'Rispetta i requisiti normativi'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/it/hc/documentation/learn-dxpr-builder/getting-started/behind-a-firewall'
      description: 'DXPR Builder conserva le tue pagine nel tuo database Drupal. Contatta i servizi DXPR per controlli di licenza, asset dell’editor e richieste AI. Questa pagina elenca ogni connessione, cosa trasporta ciascuna, dove girano i modelli DXAI Kavya, come è conservata la chiave prodotto, e cosa funziona quando l’accesso in uscita è limitato.'
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Home
            item: 'https://dxpr.com/it'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: it
---
[Centro assistenza](/it/hc)/[Documentazione](/it/hc/documentazione) /[Impara DXPR Builder](/it/hc/documentation/learn-dxpr-builder) /[Gestisci il sito](/it/hc/documentation/learn-dxpr-builder/manage) /[Rispetta i requisiti normativi](/it/hc/documentation/learn-dxpr-builder/manage/compliance) # Firewall e residenza dei dati.

 Impara DXPR BuilderGestisci il sitoRispetta i requisiti normativi

   ## In questa guida

 Guide correlate

- [Installare DXPR Builder sul tuo sito Drupal](/it/hc/documentazione/impara-dxpr-builder/per-iniziare/installazione)
- [Sicurezza](/it/hc/documentation/learn-dxpr-builder/advanced/security)
- [Errori di licenza e chiave prodotto](/it/hc/documentazione/impara-dxpr-builder/risoluzione-problemi/licenza-e-chiave-prodotto)

DXPR Builder conserva le tue pagine nel tuo database Drupal. Contatta i servizi DXPR per controlli di licenza, asset dell’editor e richieste AI. Questa pagina elenca ogni connessione, cosa trasporta ciascuna, dove girano i modelli DXAI Kavya, come è conservata la chiave prodotto, e cosa funziona quando l’accesso in uscita è limitato.

## Le connessioni in breve

| Host | Effettuata da | Scopo | Necessaria per |
|---|---|---|---|
| `dxpr.com` | Server Drupal | Stato della licenza, controllo dominio, sincronizzazione utenti con licenza | Modifica |
| `cdn2.dxpr.com` | Browser del redattore | JavaScript e CSS dell’editor (primario) | Modifica |
| `cdn.dxpr.com` | Browser del redattore | JavaScript e CSS dell’editor (di riserva) | Modifica |
| `kavya.dxpr.com` | Server Drupal | Richieste AI e saldo crediti AI | Funzioni AI |
| `html-extract.dxpr.com` | Browser del redattore | AI “clona da URL” | Funzioni AI |
| `r.jina.ai` (terze parti) | Browser del redattore | Legge pagine web i cui URL appaiono in un prompt | Funzioni AI |
| `tuur.dxpr.com` | Browser del redattore | Analisi di utilizzo dell’editor | Opzionale |

Tutte le connessioni usano HTTPS sulla porta 443. I visitatori del sito non caricano mai niente dai server DXPR: le pagine pubblicate sono rese da HTML conservato nel database, e lo script frontend (`dxpr_builder/dxpr_frontend.min.js`) è incluso nel modulo. `app.dxpr.com` appare solo in link mostrati agli amministratori.

## Controlli di licenza (`dxpr.com`)

Il server Drupal chiama quattro endpoint definiti in `src/Service/DxprBuilderLicenseServiceInterface.php`, ognuno con la chiave prodotto come header `Authorization: Bearer`.

| Endpoint | Quando | Dati inviati |
|---|---|---|
| `GET /api/user-license` | Ogni 24 ore quando autorizzato, ogni 30 minuti quando no | `gba` e `users_tier` (numero di account con il permesso `edit with dxpr builder` e la fascia in cui ricade), `values_count` (elementi di contenuto che usano un campo builder), `site_base_url`, `site` (un HMAC del salt hash del sito; il salt stesso non viene inviato), `site_mail` (da `system.site`), `project`, `version` |
| `GET /api/domain-blacklist/{hostname}` | Ogni ora | Solo l’hostname; nessun header di autorizzazione |
| `POST /api/central-user-storage/{add,remove,sync}` | Quando cambiano account, permessi o chiave prodotto; i seguiti sono accodati ed eseguiti con cron | Hostname più, per ogni account con il permesso di modifica, il suo indirizzo email e i nomi dei ruoli. Gli account senza un indirizzo email valido vengono saltati |
| `GET /api/user-license/users` | Quando si apre la pagina Licenze utente | Niente oltre la chiave |

Il contenuto delle pagine non fa mai parte di una richiesta di licenza. Il modulo stampa anche un `<div>` nascosto nella home page contenente una stringa marcatrice fissa, la fascia di licenza, il conteggio redattori e il conteggio salvataggi (`dxpr_builder_page_bottom()` in `dxpr_builder.module`). È leggibile nel sorgente della pagina.

## Asset dell’editor (`cdn2.dxpr.com`, `cdn.dxpr.com`)

Quando **Asset dell’editor** è **Cloud** (il predefinito), il browser del redattore carica JavaScript e CSS del builder da `https://cdn2.dxpr.com/<version>/`, ripiegando su `https://cdn.dxpr.com/<version>/`dopo una probe `/health` fallita. La chiave prodotto è aggiunta a ogni URL di asset come parametro di query `jwt` (`dxpr_builder_library_info_build()`). La CDN verifica quella chiave: una risposta 401 fa mostrare a `js/editor_validation.js` “La tua chiave prodotto non è valida”.

Le opzioni **Locale (minificato)** e **Locale (non minificato)**appaiono nel modulo delle impostazioni solo quando esiste una copia compilata dell’editor nella directory `dxpr_builder/` del modulo, e tale copia viene usata in automatico anche quando è selezionato Cloud. Il repository git non traccia questi file compilati, quindi una release scaricata da drupal.org carica l’editor dalla CDN.

## Richieste AI (`kavya.dxpr.com`)

Il browser non contatta mai `kavya.dxpr.com`. L’editor invia post a route sul tuo sito (`/dxpr_builder/ajax/ai/chat`, `/dxpr_builder/ajax/ai/image`, `/dxpr_builder/ajax/ai/image/edit`; tutte richiedono il permesso `edit with dxpr builder`, un token CSRF e un account con licenza). Il sito inoltra ogni richiesta tramite il provider DXPR del modulo AI di Drupal (`ai_provider_dxpr`) a `https://kavya.dxpr.com/v1/chat/completions`, `/v1/images/generations` o `/v1/images/edits`, con l’autenticazione della chiave API DXPR conservata nel modulo Key. L’impostazione `host` del provider (`ai_provider_dxpr.settings`) può puntare le richieste a un altro host. Separatamente, la pagina delle impostazioni AI chiama `GET https://kavya.dxpr.com/v1/account/balance`con la chiave prodotto per mostrare il tuo saldo crediti.

### Cosa contiene una richiesta AI

Solo le funzioni AI mandano contenuti della pagina fuori dal sito, e solo quando un redattore le avvia (`dxpr_builder/build/dxpr-global/ai-service.js`).

| Richiesta | Contenuto inviato |
|---|---|
| Generazione di testo e pagine | Prompt di sistema, prompt del redattore, cronologia chat |
| Con un elemento selezionato | L’HTML esterno dell’elemento: intero se 500 caratteri o meno, altrimenti i suoi primi e ultimi 200 caratteri |
| Operazioni a livello pagina | L’HTML esistente della pagina, fino a 50.000 caratteri; la pagina completa quando si sostituisce l’intera pagina |
| Campi opzionali | Nome del modello, ordine dei provider abilitati, un risultato HTML previsto, tag e classi permessi, un flag `web_search`, un formato di risposta |
| Generazione di immagini | Prompt, dimensione, qualità, sfondo |
| Modifica di immagini | Gli stessi più l’immagine di origine, codificata in base64 |

Due comodità scaricano pagine web dal browser del redattore (`ai-service-url-fetch.js`): un URL in un prompt è richiesto con `.md` aggiunto e, se fallisce, tramite `https://r.jina.ai/<url>`, un servizio di lettura di terze parti non gestito da DXPR; un prompt che chiede di clonare una pagina invia l’URL a `https://html-extract.dxpr.com/?url=...`. In entrambi i casi viene inviato solo l’URL.

L’output AI è filtrato al ritorno. Domini permessi, tag bloccati e tag permessi si impostano in `/admin/dxpr_studio/dxpr_builder/ai_settings`sotto **Filtro dell’output AI**.

## Dove girano i modelli DXAI Kavya

DXPR Builder offre tre modelli (`src/Constants/AiModelConstants.php`):

| Modello | Nome API | Descrizione mostrata nel modulo delle impostazioni |
|---|---|---|
| DXAI Kavya M1 | `kavya-m1` | Migliori prestazioni (OpenAI, Google Gemini, Anthropic) |
| DXAI Kavya M1 EU | `kavya-m1-eu` | Incentrato sulla privacy (MistralAI) |
| DXAI Kavya M1 Fast | `kavya-m1-fast` | Risposte più veloci, qualità inferiore |

Non c’è un’impostazione di regione in nessuno dei due moduli. La residenza dei dati si sceglie per modello e per quali provider a monte abiliti:

- `kavya-m1` commuta tra cinque provider, elencati con il loro paese nel modulo delle impostazioni del Provider AI DXPR: Anthropic (Stati Uniti), Google Gemini (Stati Uniti), MistralAI (Francia), OpenAI (Stati Uniti), XAI (Stati Uniti). In modalità **Priorità manuale** trascini i provider tra **Abilitati** e **Disabilitati**e ne imposti l’ordine.
- `kavya-m1-eu` usa solo MistralAI. Il README del Provider AI DXPR dichiara che “mantiene i dati entro i confini europei (server nei Paesi Bassi)”; la sua documentazione dichiara che il server Kavya gira nei Paesi Bassi con un backup in Germania, che le richieste passano dai server MistralAI in Francia, e che non ripiega mai su un provider fuori UE. Queste sedi sono documentate da DXPR, non imposte da niente nel codice Drupal.

Con `ai_provider_dxpr` installato, il modello si sceglie in `/admin/config/ai/providers/dxpr`, e la sua impostazione `allowed_models` controlla quali modelli i redattori possono scegliere. Senza di esso, modello e ordine dei provider si impostano in `/admin/dxpr_studio/dxpr_builder/ai_settings`.

## Come è conservata la chiave prodotto

La sezione **Licenza** di `/admin/dxpr_studio/dxpr_builder/settings` offre due opzioni di **Metodo di archiviazione**(`src/Form/DxprBuilderSettingsForm.php`, `src/Service/DxprBuilderKeyService.php`):

- **Modulo Key**: la chiave è letta dall’entità Chiave scelta sotto **Chiave**. `dxpr_builder_update_9020()` sposta una chiave trovata in `dxpr_builder.settings` nell’entità Chiave `dxpr_builder_jwt`, il cui provider **Configurazione**la esporta comunque. Solo il provider **File** o **Ambiente** tiene la chiave fuori dalle esportazioni di configurazione.
- **Archiviazione in configurazione**: la chiave è salvata in testo in chiaro come `dxpr_builder.settings.json_web_token` ed è inclusa nelle esportazioni di configurazione.

La chiave prodotto è un JSON Web Token che autentica le chiamate di licenza, la chiamata di saldo crediti e gli URL di asset CDN; trattala come una credenziale.

## Configurazione del firewall

| Da | HTTPS in uscita permesso verso | Note |
|---|---|---|
| Server Drupal | `dxpr.com` | Licenza |
| Server Drupal | `kavya.dxpr.com` | Solo AI |
| Postazioni di lavoro dei redattori | `cdn2.dxpr.com`, `cdn.dxpr.com` | Asset dell’editor |
| Postazioni di lavoro dei redattori | `html-extract.dxpr.com`, `r.jina.ai` | Solo AI; bloccarli disabilita solo ricerca da URL e clonazione |
| Postazioni di lavoro dei redattori | `tuur.dxpr.com` | Analisi; bloccarlo non cambia la modifica |

Le analisi (`dxpr_builder/build/dxpr-analytics/`, PostHog) identificano gli eventi tramite l’indirizzo email del redattore e l’hostname del sito. Disattivale con `drush config:set dxpr_builder.settings record_analytics 0`; la chiave non ha un campo nel modulo. Altre due chiavi senza campo nel modulo sono lette da `dxpr_builder.settings`: `cloud_url` sostituisce l’URL base della CDN (`VERSION` è sostituito con la versione del modulo) e `license_endpoint` sostituisce l’endpoint centrale di archiviazione utenti. Impostale con un override di configurazione in `settings.php`.

## Configurazione del proxy

Le chiamate di licenza e AI usano il client HTTP di Drupal, quindi un proxy si configura in `settings.php`:

```php
$settings['http_client_config']['proxy'] = [
  'http' => 'http://proxy.example.com:8080',
  'https' => 'http://proxy.example.com:8080',
  'no' => ['localhost', '127.0.0.1'],
];

```

I browser dei redattori caricano gli asset CDN e chiamano i servizi di analisi e lettura direttamente, quindi quelle richieste seguono le impostazioni proxy della postazione.

## Distribuzioni senza accesso alla rete e on-premise

DXPR Builder gira sul tuo server; nessun contenuto passa da un componente ospitato. Quando né il server né i redattori possono raggiungere DXPR:

| Funzionalità | Senza alcun accesso DXPR |
|---|---|
| Distribuzione delle pagine pubblicate | Funziona; niente è caricato da DXPR |
| Archiviazione dei contenuti | Funziona; le pagine sono valori di campo nel tuo database |
| Caricamento dell’editor | Non funziona a meno che una build locale dell’editor sia presente in `dxpr_builder/` |
| Convalida della licenza | Non funziona. Il modulo registra l’errore, mostra “Abbiamo problemi a connetterci ai server DXPR” agli amministratori e riprova ogni 30 minuti. La modifica non è bloccata mentre è configurata una chiave prodotto |
| Pagina Licenze utente | Vuota; ha bisogno di `dxpr.com` |
| Funzioni AI | Non disponibili; ogni richiesta passa da `kavya.dxpr.com` |
| Analisi, ricerca da URL, clona da URL | Saltate in silenzio |

Senza proprio una chiave prodotto, il modulo applica in codice i limiti del piano gratuito: un redattore e 100 elementi di contenuto.

Una distribuzione del tutto on-premise funziona quindi per distribuire e conservare contenuti; la modifica ha bisogno di accesso CDN o di una build locale dell’editor, e la convalida della licenza ha bisogno di `dxpr.com`. Contatta DXPR se ti serve una build dell’editor da ospitare internamente.

## Passi successivi

- [Installazione](/it/hc/documentazione/impara-dxpr-builder/per-iniziare/installazione): configura la chiave prodotto e il metodo di archiviazione
- [Funzioni AI](/hc/documentation/learn-dxpr-builder/ai): abilita l’AI e scegli un modello
- [Sicurezza](/it/hc/documentation/learn-dxpr-builder/advanced/security): permessi e filtro dell’output
- [Licenza e chiave prodotto](/it/hc/documentation/learn-dxpr-builder/troubleshooting/licence-and-product-key): risoluzione degli errori di licenza