Ustawienia i tabele bazy danych Todomatora
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 |
minlogtime | najkrótszy wpis czasu, w minutach (domyślnie 1) (śledzenie czasu) |
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).