Registar uma aplicação no OpenPlatform
Uma aplicação é um registo que o administrador cria no ecrã de configuração (/setup/, a API de apps do plugin setup). O registo é o contrato entre o OpenPlatform e a sua aplicação: onde vive, como os dois provam quem são e o que o utilizador pode fazer nela. O esquema do registo é @Apps em plugins/setup/schemas/apps.js.
| Campo | Obrigatório | Significado |
|---|---|---|
name | sim | o nome mostrado no portal |
url | sim | o endereço que o OpenPlatform abre |
reqtoken | sim | um segredo que escolhe e que ambos os lados conhecem: assina o pedido |
restoken | sim | um segundo segredo, também partilhado: a aplicação usa-o para assinar a sua resposta |
color, icon | não | o aspeto da aplicação no portal |
meta | não | um endereço (URL) que devolve os metadados da aplicação: o ecrã de configuração pode descarregá-los (Apps/download) para preencher o registo |
sortindex | não | a ordem na lista (uma aplicação nova vai para o fim) |
notifications | não | se a aplicação pode enviar notificações |
isexternal | não | a aplicação não é aberta dentro da moldura do portal: a resposta à aplicação diz iframe: false |
isbookmark | não | a aplicação é uma simples ligação: sem troca de tokens, apenas um identificador de sessão na query string |
isnewtab | não | abre-a num novo separador do navegador em vez da moldura do portal (a definição newtab fá-lo para todas as aplicações) |
isscrollbar | não | a moldura da aplicação no portal mantém a sua barra de deslocamento (o portal põe scrolling em yes ou no) |
isdisabled | não | desligá-la para todos: o utilizador recebe "App has been temporary disabled" |
permissions | não | a lista de permissões da aplicação: cada uma tem um id, um name e um value (veja grupos e permissões) |
A tabela tbl_app tem também uma coluna allow ("permite apenas endereços IP específicos"): quando contém endereços, a aplicação só pode chamar os endpoints do protocolo do OpenPlatform a partir deles. O esquema de configuração acima não a lista, por isso é uma coluna da base de dados que preenche diretamente.
Os dois tokens
reqtoken e restoken nunca são enviados ao navegador. O OpenPlatform deriva deles, para cada lançamento, os valores que viajam: o token no endereço da aplicação e o cabeçalho que a aplicação devolve. A derivação está em como uma app se liga. Use valores aleatórios longos e um par diferente para cada aplicação.
Remover e alterar
Uma aplicação nunca é apagada da tabela: removê-la (Apps/remove) define isremoved e a data da remoção e limpa a cache dos utilizadores que a tinham, e isdisabled desliga-a sem a remover. Quando o endereço da plataforma (a definição url) muda, o OpenPlatform limpa as ligações de notificação de todos os utilizadores e apaga as sessões de aplicação abertas, porque ambos contêm esse endereço (definições e base de dados).
Lembre-se da regra do README: uma aplicação registada não é visível para ninguém até lhe ser atribuído um grupo.