> For the complete documentation index, see [llms.txt](https://manuale.opencontent.it/manuali/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://manuale.opencontent.it/manuali/manuale-operativo-interno/tenant-manager/configurare-un-tenant.md).

# Configurare un tenant

La configurazione di un tenant contiene tutti i parametri operativi che l'applicativo utilizza per funzionare: endpoint, credenziali, identificativi di servizio, parametri di comportamento. Viene compilata dal team delivery dopo l'attivazione e può essere aggiornata in qualsiasi momento.

***

#### Come funziona Form.io

Ogni tipo di applicativo ha uno schema Form.io associato che determina quali campi mostrare nel form di configurazione. Il form viene generato automaticamente — non è necessario sapere come è fatto lo schema per compilarlo.

Quando salvi il form, i dati vengono memorizzati come JSON nel campo `config` del tenant nel database. Questo stesso JSON viene passato come input ai workflow Windmill durante le transizioni di stato.

<figure><img src="/files/VquRcXJVSexiv7HaTjmC" alt=""><figcaption></figcaption></figure>

> **Note:** La struttura del form è a cura degli sviluppatori, la configurazione del tenant tramite il form è a cura del team delivery.

***

#### Campi comuni a tutti gli applicativi

Alcuni campi sono presenti in tutti i tipi di tenant indipendentemente dall'applicativo:

| Campo           | Descrizione                    | Note                                 |
| --------------- | ------------------------------ | ------------------------------------ |
| **Nome**        | Etichetta leggibile del tenant | Es. "Comune di Arco — Atti Sicraweb" |
| **Cliente**     | Ente associato                 | Selezionabile dall'anagrafica        |
| **Applicativo** | Tipo di prodotto/integrazione  | Non modificabile dopo la creazione   |
| **Piano**       | S / M / L / XL / XXL           | Dall'ordine Odoo                     |
| **Ambiente**    | QA o Produzione                | Coerente con il TM in uso            |
| **UID**         | Identificativo univoco globale | Generato automaticamente             |

I campi specifici per tipo di applicativo sono documentati nella sezione [Applicativi supportati](/manuali/manuale-operativo-interno/tenant-manager/applicativi-supportati.md).

***

#### Gestione delle credenziali

Molti applicativi richiedono credenziali per comunicare con sistemi esterni (es. URL e token del gestionale atti, chiavi API del gateway di pagamento). Queste credenziali vanno inserite nei campi del form di configurazione dedicati.

**Regole fondamentali**

**Non usare mai le credenziali di superuser del Tenant Manager** nei campi di configurazione degli applicativi. Il superuser ha accesso illimitato al database e alle impostazioni del sistema: inserirlo in una configurazione applicativa esporrebbe l'intero sistema a rischi gravi in caso di compromissione.

> Per accedere all'API del Tenant Manager da un applicativo, usa sempre un account utente dedicato con i soli permessi necessari. Gli account applicativi si creano nel backoffice PocketBase. In caso di dubbi, contatta il team sviluppo.

**Buone pratiche**

* Usa credenziali specifiche per ambiente: non riutilizzare le stesse credenziali di produzione in QA
* Se un'integrazione smette di funzionare dopo una rotazione delle credenziali, aggiorna il campo corrispondente nel form di configurazione e salva, il tenant non ha bisogno di essere riattivato
* Non condividere credenziali tra tenant diversi, anche se appartengono allo stesso cliente

***

#### Aggiornare la configurazione di un tenant in produzione

È possibile modificare la configurazione di un tenant anche quando è in stato *In produzione*.

A seconda dell'applicativo, una modifica alla configurazione può:

* essere applicata immediatamente senza interruzioni
* avviare automaticamente un workflow Windmill di redeployment (il tenant entrerà brevemente in uno stato transitorio)

> `TODO: [SCREENSHOT: Salvataggio di una modifica alla configurazione — eventuale stato transitorio di redeployment]`

Verifica sempre il comportamento atteso per il tipo di applicativo che stai configurando prima di salvare modifiche in produzione.

***

#### Accesso al backoffice PocketBase  -  per sviluppatori

Per operazioni avanzate non disponibili nell'interfaccia principale del Tenant Manager (es. consultare direttamente i dati, creare account utente applicativi, verificare lo stato delle migrazioni), è disponibile il backoffice PocketBase.

> `[SCREENSHOT: Accesso al backoffice PocketBase — URL e schermata di login]`

L'accesso al backoffice richiede credenziali di superuser. Queste vengono fornite dal team ops o dagli sviluppatori. Usale con attenzione: dal backoffice è possibile modificare direttamente il database senza le validazioni dell'interfaccia principale.
