# Impostazioni e tabelle del database di Todomator

> Le impostazioni che Todomator conserva, i permessi che le proteggono e a cosa serve ogni tabella dello schema public.

Framework: todomator
Product: Todomator (todomator@1.7)
Language: it
Content-SHA256: 4c90f1ee345e72fad3113e23e48519e253e14e1782c8be59bbb3e0e2546320e5
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

## Le impostazioni

Todomator conserva la sua configurazione nella tabella `cl_config` e la ricarica ogni 20 minuti. La schermata delle impostazioni (`Settings/read`, `Settings/save` in `schemas/settings.js`) modifica queste chiavi e richiede il permesso `settings`:

| Chiave | Significato |
|---|---|
| `name` | il nome dell’istanza |
| `color` | il colore principale |
| `token` | il token dell’[API](/en/todomator/create-tickets-with-the-api/) |
| `minlogtime` | l’inserimento di tempo più breve, in minuti (1 per impostazione predefinita) ([tracciamento del tempo](/en/todomator/time-tracking/)) |
| `backup` | quando è attivo, ogni modifica del Markdown di un ticket memorizza anche una copia del testo, con utente, indirizzo e browser (tabella `tbl_ticket_backup`) |
| `folderid` | una cartella predefinita |

## Permessi

Una persona è amministratrice quando il flag `sa` è impostato o quando l’elenco dei permessi contiene `admin`. `admin` gestisce le cartelle e le schermate di amministrazione; `settings` consente le impostazioni; `bot` appartiene all’utente integrato del token dell’API. Le sessioni vivono nella tabella `tbl_session` e quelle scadute vengono eliminate una volta al giorno.

## Autenticazione a due fattori

Ogni utente ha il flag `is2fa`, che la persona attiva quando cambia la password (`Users|password`). L’accesso ha quindi due passaggi (`plugins/users/index.js`): prima e-mail e password; se l’account ha `is2fa`, Todomator invia per e-mail un codice di sei cifre (modello `templates/mail-2fa.html`) valido 10 minuti, e la persona lo rimanda per concludere. I tentativi errati sono bloccati dopo 10 tentativi in 10 minuti. La riga `mail` del file `config` deve essere impostata perché il codice venga consegnato.

## Il database

Tutto vive nello schema `public` di PostgreSQL:

| Tabella | Cosa contiene |
|---|---|
| `cl_config` | la configurazione |
| `cl_status` | i sei stati di un ticket |
| `cl_notification` | i tipi di notifica |
| `tbl_user` | gli utenti: profilo, hash della password, permessi e `is2fa` |
| `tbl_folder` | le cartelle (clienti e progetti) |
| `tbl_tag` | i tag |
| `tbl_ticket` | i ticket |
| `tbl_ticket_comment` | i commenti dei ticket |
| `tbl_ticket_time` | gli inserimenti di tempo |
| `tbl_ticket_bookmark` | i segnalibri di ogni utente |
| `tbl_ticket_unread` | lo stato di non letto per utente e ticket |
| `tbl_ticket_data` | dati liberi di un ticket (`data_read` / `data_save`) |
| `tbl_ticket_backup` | copie del Markdown di un ticket (l’impostazione `backup`) |
| `tbl_notification` | le notifiche degli utenti |
| `tbl_file` | i file caricati |
| `tbl_session` | le sessioni |

Fai il backup di questo schema come di qualsiasi altro database PostgreSQL. Per un aggiornamento, applica gli script `database_*.sql` del repository più recenti della tua versione ([installare Todomator](/en/todomator/install-todomator/)).
