# Nastavení a databázové tabulky Todomatoru

> Nastavení, která Todomator uchovává, oprávnění, která je chrání, a k čemu slouží každá tabulka schématu public.

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

## Nastavení

Todomator uchovává svou konfiguraci v tabulce `cl_config` a každých 20 minut ji znovu načítá. Obrazovka nastavení (`Settings/read`, `Settings/save` v `schemas/settings.js`) upravuje tyto klíče a vyžaduje oprávnění `settings`:

| Klíč | Význam |
|---|---|
| `name` | název instance |
| `color` | hlavní barva |
| `token` | token [API](/en/todomator/create-tickets-with-the-api/) |
| `minlogtime` | nejkratší záznam času v minutách (výchozí 1) ([sledování času](/en/todomator/time-tracking/)) |
| `backup` | když je zapnuto, každá úprava Markdownu tiketu uloží také kopii textu s uživatelem, adresou a prohlížečem (tabulka `tbl_ticket_backup`) |
| `folderid` | výchozí složka |

## Oprávnění

Osoba je správce, když je nastaven příznak `sa` nebo když seznam oprávnění obsahuje `admin`. `admin` spravuje složky a administrační obrazovky; `settings` povoluje nastavení; `bot` patří vestavěnému uživateli tokenu API. Relace žijí v tabulce `tbl_session` a vypršené se mažou jednou denně.

## Dvoufaktorová autentizace

Každý uživatel má příznak `is2fa`, který osoba zapne při změně hesla (`Users|password`). Přihlášení má pak dva kroky (`plugins/users/index.js`): nejprve e-mail a heslo; pokud má účet `is2fa`, Todomator pošle e-mailem šestimístný kód (šablona `templates/mail-2fa.html`) platný 10 minut a osoba jej pošle zpět pro dokončení. Špatné pokusy se blokují po 10 pokusech za 10 minut. Aby se kód doručil, musí být nastaven řádek `mail` v souboru `config`.

## Databáze

Vše je ve schématu `public` databáze PostgreSQL:

| Tabulka | Co obsahuje |
|---|---|
| `cl_config` | konfigurace |
| `cl_status` | šest stavů tiketu |
| `cl_notification` | typy oznámení |
| `tbl_user` | uživatelé: profil, hash hesla, oprávnění a `is2fa` |
| `tbl_folder` | složky (zákazníci a projekty) |
| `tbl_tag` | štítky |
| `tbl_ticket` | tikety |
| `tbl_ticket_comment` | komentáře tiketů |
| `tbl_ticket_time` | záznamy času |
| `tbl_ticket_bookmark` | záložky každého uživatele |
| `tbl_ticket_unread` | stav nepřečteného na uživatele a tiket |
| `tbl_ticket_data` | volná data tiketu (`data_read` / `data_save`) |
| `tbl_ticket_backup` | kopie Markdownu tiketu (nastavení `backup`) |
| `tbl_notification` | oznámení uživatelů |
| `tbl_file` | soubory, které byly nahrány |
| `tbl_session` | relace |

Toto schéma zálohujte jako každou jinou databázi PostgreSQL. Při aktualizaci použijte skripty `database_*.sql` z repozitáře, které jsou novější než vaše verze ([instalace Todomatoru](/en/todomator/install-todomator/)).
