# Ajustes y tablas de base de datos de Todomator

> Los ajustes que guarda Todomator, los permisos que los protegen y para qué sirve cada tabla del esquema public.

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

## Los ajustes

Todomator guarda su configuración en la tabla `cl_config` y la recarga cada 20 minutos. La pantalla de ajustes (`Settings/read`, `Settings/save` en `schemas/settings.js`) edita estas claves y necesita el permiso `settings`:

| Clave | Significado |
|---|---|
| `name` | el nombre de la instancia |
| `color` | el color principal |
| `token` | el token de la [API](/en/todomator/create-tickets-with-the-api/) |
| `minlogtime` | la entrada de tiempo más corta, en minutos (1 por defecto) ([control de tiempo](/en/todomator/time-tracking/)) |
| `backup` | cuando está activado, cada edición del Markdown de un ticket guarda también una copia del texto, con el usuario, la dirección y el navegador (tabla `tbl_ticket_backup`) |
| `folderid` | una carpeta por defecto |

## Permisos

Una persona es administradora cuando la bandera `sa` está activada o cuando la lista de permisos contiene `admin`. `admin` gestiona las carpetas y las pantallas de administración; `settings` permite los ajustes; `bot` pertenece al usuario integrado del token de la API. Las sesiones viven en la tabla `tbl_session` y las caducadas se borran una vez al día.

## Autenticación de dos factores

Cada usuario tiene la bandera `is2fa`, que la persona activa al cambiar la contraseña (`Users|password`). El inicio de sesión tiene entonces dos pasos (`plugins/users/index.js`): primero correo y contraseña; si la cuenta tiene `is2fa`, Todomator envía por correo un código de seis dígitos (plantilla `templates/mail-2fa.html`) que vale 10 minutos, y la persona lo devuelve para terminar. Los intentos erróneos se bloquean tras 10 intentos en 10 minutos. La línea `mail` del archivo `config` debe estar definida para que el código se entregue.

## La base de datos

Todo vive en el esquema `public` de PostgreSQL:

| Tabla | Qué contiene |
|---|---|
| `cl_config` | la configuración |
| `cl_status` | los seis estados de un ticket |
| `cl_notification` | los tipos de notificación |
| `tbl_user` | los usuarios: perfil, hash de la contraseña, permisos e `is2fa` |
| `tbl_folder` | las carpetas (clientes y proyectos) |
| `tbl_tag` | las etiquetas |
| `tbl_ticket` | los tickets |
| `tbl_ticket_comment` | los comentarios de los tickets |
| `tbl_ticket_time` | las entradas de tiempo |
| `tbl_ticket_bookmark` | los marcadores de cada usuario |
| `tbl_ticket_unread` | el estado de no leído por usuario y ticket |
| `tbl_ticket_data` | datos libres de un ticket (`data_read` / `data_save`) |
| `tbl_ticket_backup` | copias del Markdown de un ticket (el ajuste `backup`) |
| `tbl_notification` | las notificaciones de los usuarios |
| `tbl_file` | los archivos que se subieron |
| `tbl_session` | las sesiones |

Haz copia de seguridad de este esquema como de cualquier otra base de datos PostgreSQL. Para actualizar, aplica los scripts `database_*.sql` del repositorio que sean más nuevos que tu versión ([instalar Todomator](/en/todomator/install-todomator/)).
