# Réglages et tables de base de données de Todomator

> Les réglages que Todomator conserve, les permissions qui les protègent et à quoi sert chaque table du schéma public.

Framework: todomator
Product: Todomator (todomator@1.7)
Language: fr
Content-SHA256: ee983031261ca1ced9d839348b611dd13c2239c2334e4ac57d120402fd2a4820
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

## Les réglages

Todomator conserve sa configuration dans la table `cl_config` et la recharge toutes les 20 minutes. L’écran des réglages (`Settings/read`, `Settings/save` dans `schemas/settings.js`) modifie ces clés et demande la permission `settings` :

| Clé | Signification |
|---|---|
| `name` | le nom de l’instance |
| `color` | la couleur principale |
| `token` | le jeton de l’[API](/en/todomator/create-tickets-with-the-api/) |
| `minlogtime` | la saisie de temps la plus courte, en minutes (1 par défaut) ([suivi du temps](/en/todomator/time-tracking/)) |
| `backup` | quand il est activé, chaque modification du Markdown d’un ticket enregistre aussi une copie du texte, avec l’utilisateur, l’adresse et le navigateur (table `tbl_ticket_backup`) |
| `folderid` | un dossier par défaut |

## Permissions

Une personne est administratrice quand l’indicateur `sa` est activé ou quand la liste des permissions contient `admin`. `admin` gère les dossiers et les écrans d’administration ; `settings` autorise les réglages ; `bot` appartient à l’utilisateur intégré du jeton de l’API. Les sessions vivent dans la table `tbl_session` et les sessions expirées sont supprimées une fois par jour.

## Authentification à deux facteurs

Chaque utilisateur a l’indicateur `is2fa`, que la personne active en changeant le mot de passe (`Users|password`). La connexion se fait alors en deux étapes (`plugins/users/index.js`) : d’abord e-mail et mot de passe ; si le compte a `is2fa`, Todomator envoie par e-mail un code à six chiffres (modèle `templates/mail-2fa.html`) valable 10 minutes, et la personne le renvoie pour terminer. Les tentatives erronées sont bloquées après 10 essais en 10 minutes. La ligne `mail` du fichier `config` doit être définie pour que le code soit livré.

## La base de données

Tout vit dans le schéma `public` de PostgreSQL :

| Table | Ce qu’elle contient |
|---|---|
| `cl_config` | la configuration |
| `cl_status` | les six statuts d’un ticket |
| `cl_notification` | les types de notification |
| `tbl_user` | les utilisateurs : profil, hachage du mot de passe, permissions et `is2fa` |
| `tbl_folder` | les dossiers (clients et projets) |
| `tbl_tag` | les étiquettes |
| `tbl_ticket` | les tickets |
| `tbl_ticket_comment` | les commentaires des tickets |
| `tbl_ticket_time` | les saisies de temps |
| `tbl_ticket_bookmark` | les signets de chaque utilisateur |
| `tbl_ticket_unread` | l’état de non-lu par utilisateur et par ticket |
| `tbl_ticket_data` | données libres d’un ticket (`data_read` / `data_save`) |
| `tbl_ticket_backup` | copies du Markdown d’un ticket (le réglage `backup`) |
| `tbl_notification` | les notifications des utilisateurs |
| `tbl_file` | les fichiers envoyés |
| `tbl_session` | les sessions |

Sauvegardez ce schéma comme n’importe quelle autre base de données PostgreSQL. Pour une mise à jour, appliquez les scripts `database_*.sql` du dépôt plus récents que votre version ([installer Todomator](/en/todomator/install-todomator/)).
