Definições e tabelas da base de dados do Todomator
As definições
O Todomator guarda a sua configuração na tabela cl_config e recarrega-a a cada 20 minutos. O ecrã de definições (Settings/read, Settings/save em schemas/settings.js) edita estas chaves e precisa da permissão settings:
| Chave | Significado |
|---|---|
name | o nome da instância |
color | a cor principal |
token | o token da API |
minlogtime | a entrada de tempo mais curta, em minutos (1 por predefinição) (registo de tempo) |
backup | quando ativa, cada edição do Markdown de um ticket guarda também uma cópia do texto, com o utilizador, o endereço e o navegador (tabela tbl_ticket_backup) |
folderid | uma pasta predefinida |
Permissões
Uma pessoa é administradora quando o indicador sa está definido ou quando a lista de permissões contém admin. admin gere as pastas e os ecrãs de administração; settings permite as definições; bot pertence ao utilizador integrado do token da API. As sessões vivem na tabela tbl_session e as expiradas são apagadas uma vez por dia.
Autenticação de dois fatores
Cada utilizador tem o indicador is2fa, que a pessoa ativa ao mudar a palavra-passe (Users|password). O início de sessão tem então dois passos (plugins/users/index.js): primeiro e-mail e palavra-passe; se a conta tem is2fa, o Todomator envia por e-mail um código de seis dígitos (modelo templates/mail-2fa.html) válido por 10 minutos, e a pessoa devolve-o para terminar. As tentativas erradas são bloqueadas após 10 tentativas em 10 minutos. A linha mail do ficheiro config tem de estar definida para o código ser entregue.
A base de dados
Tudo vive no esquema public do PostgreSQL:
| Tabela | O que contém |
|---|---|
cl_config | a configuração |
cl_status | os seis estados de um ticket |
cl_notification | os tipos de notificação |
tbl_user | os utilizadores: perfil, hash da palavra-passe, permissões e is2fa |
tbl_folder | as pastas (clientes e projetos) |
tbl_tag | as etiquetas |
tbl_ticket | os tickets |
tbl_ticket_comment | os comentários dos tickets |
tbl_ticket_time | as entradas de tempo |
tbl_ticket_bookmark | os marcadores de cada utilizador |
tbl_ticket_unread | o estado de não lido por utilizador e ticket |
tbl_ticket_data | dados livres de um ticket (data_read / data_save) |
tbl_ticket_backup | cópias do Markdown de um ticket (a definição backup) |
tbl_notification | as notificações dos utilizadores |
tbl_file | os ficheiros que foram carregados |
tbl_session | as sessões |
Faça cópia de segurança deste esquema como de qualquer outra base de dados PostgreSQL. Para atualizar, aplique os scripts database_*.sql do repositório que sejam mais recentes do que a sua versão (instalar o Todomator).