# Ustawienia i tabele bazy danych Todomatora

> Ustawienia, które przechowuje Todomator, uprawnienia, które je chronią, i do czego służy każda tabela schematu public.

Framework: todomator
Product: Todomator (todomator@1.7)
Language: pl
Content-SHA256: 90a15616f4f1d732c257d01e36f51d4afab2b10ff685aeb530de387297924692
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

## Ustawienia

Todomator przechowuje konfigurację w tabeli `cl_config` i przeładowuje ją co 20 minut. Ekran ustawień (`Settings/read`, `Settings/save` w `schemas/settings.js`) edytuje te klucze i wymaga uprawnienia `settings`:

| Klucz | Znaczenie |
|---|---|
| `name` | nazwa instancji |
| `color` | kolor główny |
| `token` | token [API](/en/todomator/create-tickets-with-the-api/) |
| `minlogtime` | najkrótszy wpis czasu, w minutach (domyślnie 1) ([śledzenie czasu](/en/todomator/time-tracking/)) |
| `backup` | gdy włączone, każda edycja Markdown zgłoszenia zapisuje też kopię tekstu, z użytkownikiem, adresem i przeglądarką (tabela `tbl_ticket_backup`) |
| `folderid` | folder domyślny |

## Uprawnienia

Osoba jest administratorem, gdy ustawiona jest flaga `sa` lub lista uprawnień zawiera `admin`. `admin` zarządza folderami i ekranami administracji; `settings` zezwala na ustawienia; `bot` należy do wbudowanego użytkownika tokenu API. Sesje znajdują się w tabeli `tbl_session`, a wygasłe są usuwane raz dziennie.

## Uwierzytelnianie dwuskładnikowe

Każdy użytkownik ma flagę `is2fa`, którą osoba włącza przy zmianie hasła (`Users|password`). Logowanie ma wtedy dwa kroki (`plugins/users/index.js`): najpierw e-mail i hasło; jeśli konto ma `is2fa`, Todomator wysyła e-mailem sześciocyfrowy kod (szablon `templates/mail-2fa.html`) ważny 10 minut, a osoba odsyła go, aby zakończyć. Błędne próby są blokowane po 10 próbach w ciągu 10 minut. Aby kod został dostarczony, wiersz `mail` pliku `config` musi być ustawiony.

## Baza danych

Wszystko znajduje się w schemacie `public` PostgreSQL:

| Tabela | Co zawiera |
|---|---|
| `cl_config` | konfiguracja |
| `cl_status` | sześć statusów zgłoszenia |
| `cl_notification` | typy powiadomień |
| `tbl_user` | użytkownicy: profil, skrót hasła, uprawnienia i `is2fa` |
| `tbl_folder` | foldery (klienci i projekty) |
| `tbl_tag` | tagi |
| `tbl_ticket` | zgłoszenia |
| `tbl_ticket_comment` | komentarze zgłoszeń |
| `tbl_ticket_time` | wpisy czasu |
| `tbl_ticket_bookmark` | zakładki każdego użytkownika |
| `tbl_ticket_unread` | stan nieprzeczytania na użytkownika i zgłoszenie |
| `tbl_ticket_data` | dowolne dane zgłoszenia (`data_read` / `data_save`) |
| `tbl_ticket_backup` | kopie Markdown zgłoszenia (ustawienie `backup`) |
| `tbl_notification` | powiadomienia użytkowników |
| `tbl_file` | pliki, które zostały wysłane |
| `tbl_session` | sesje |

Rób kopię zapasową tego schematu jak każdej innej bazy PostgreSQL. Przy aktualizacji zastosuj skrypty `database_*.sql` z repozytorium, które są nowsze niż Twoja wersja ([instalacja Todomatora](/en/todomator/install-todomator/)).
