ForgeOpenPlatform
pt

OpenPlatform

Definições, serviços e tabelas da base de dados do OpenPlatform

OpenPlatform · openplatform@5 openplatformsettingsdatabaseservices

As definições

O OpenPlatform guarda a sua configuração na tabela cl_config e carrega-a no CONF do Total.js ao arrancar e a cada oito horas (definitions/init.js). O ecrã de configuração lê e guarda estas chaves (plugins/setup/schemas/settings.js):

ChaveSignificado
name, icon, coloro nome, o logótipo e a cor da plataforma
urlo endereço público da plataforma (sem a / final). Alterá-lo limpa as ligações de notificação e as sessões de aplicação abertas
languageo idioma predefinido
mail_smtp, mail_smtp_options, mail_fromo servidor SMTP, as suas opções (JSON) e o remetente; o ecrã de configuração pode testá-los
$tms, secret_tmspublicar os eventos por TMS, e o segredo dessa ligação
allow_token, tokenativar a API pública GET /users/ e o seu token
newtababrir cada aplicação num novo separador
sync, sync_tokenaceitar o socket /sync/ de outras instâncias, com o seu token

O primeiro arranque (database.sql) também gera, dentro de cl_config, valores que o ecrã de configuração não edita: o id da instalação, o secret de autenticação, o nome do cookie, o salt das palavras-passe, o saltchecksum das somas de verificação e o segredo da ligação TMS. Cria as chaves com estes valores predefinidos:

ChavePredefiniçãoSignificado
auth_cookie_expire1 monthquanto tempo vive o cookie de sessão
auth_expire5 minutesquanto tempo o utilizador com sessão iniciada é mantido em memória antes de ser lido de novo
auth_cookie_options{"httponly":true,"security":"lax"}as opções do cookie de sessão
auth_strictfalsesessões estritas
app_session_expire1 dayquanto dura uma sessão de aplicação
cdnhttps://cdn.componentator.com/a CDN da interface
languageeuo idioma predefinido
token, sync_tokengeradoo token da API de utilizadores e do socket de sincronização (ambas as funcionalidades estão desligadas por predefinição)

A chave servicetoken, que o endpoint de carregamento de imagens compara com o seu token de consulta, não é criada pelo script e o ecrã de configuração não a edita: só existe se a acrescentar você mesmo a cl_config.

O script cria também o grupo Admin e o primeiro utilizador (info@totaljs.com, administrador, confirmado) que lhe pertence; veja instalá-lo.

Os serviços em segundo plano

O Total.js executa um serviço a cada minuto. O OpenPlatform usa-o (definitions/init.js) para:

  • limpar a cache em memória das verificações (a cada 2 minutos);
  • guardar as estatísticas diárias: utilizadores online, o máximo e o número por dispositivo (a cada 3 minutos);
  • recarregar a configuração a partir da base de dados (a cada 8 horas);
  • apagar as sessões de aplicação e de plataforma expiradas (a cada 12 horas);
  • enviar os resumos por e-mail das notificações por ler (a cada 11 minutos, quando o correio está configurado).

A base de dados

Tudo vive no esquema PostgreSQL op:

TabelaO que contém
cl_configa configuração (chave, valor, tipo)
tbl_useros utilizadores: perfil, hash da palavra-passe, indicadores, contadores e as permissões em cache
tbl_groupos grupos
tbl_user_groupque utilizador pertence a que grupo
tbl_sessionas sessões dos utilizadores no portal (dispositivo, endereço, validade)
tbl_appas aplicações: endereço, segredos, indicadores e endereços permitidos
tbl_app_permissionas permissões que cada aplicação declara
tbl_group_permissionque permissões (ou apenas que aplicações) cada grupo concede
tbl_app_sessionas sessões de lançamento das aplicações e os seus tokens derivados
tbl_user_apppor utilizador e aplicação: as ligações de notificação e se aceitam notificações
tbl_notificationas notificações
tbl_visitoras estatísticas diárias de visitantes
tbl_feedbackos comentários que os utilizadores enviam a partir do portal

Os ficheiros com data database-2023-09-15.sql, database-2024-03-21.sql, database-2024-10-22.sql e database-2024-10-30.sql do repositório são as alterações do esquema ao longo do tempo, e database.sql é o script completo que o primeiro arranque executa. Faça cópia de segurança deste esquema como de qualquer outra base de dados PostgreSQL.