Os projectos introduziram o novo ficheiro directory.json contendo utilizadores, grupos e permissões. Permite a autenticação, restrições, permissões em várias partes da aplicação, através de definições ou código. Vejamos as novas melhorias sobre a utilização deste ficheiro em projectos de servidores fundidos.
Lembrete
Num projecto, os utilizadores, grupos e algumas permissões são guardados no ficheiro do directório. Para se lembrar de como funciona, pode ler novamente este blog-post de apresentação ou ver este vídeo.
Ficheiros de directório
O ficheiro do directório do projecto é o ficheiro directory.json localizado na pasta de definições do utilizador do projecto (pasta de definições ao lado da pasta do projecto do projecto em utilização):
O ficheiro do directório de dados é o ficheiro directory.json localizado na pasta de definições do utilizador para dados (pasta de definições ao lado do ficheiro de dados em uso):
O ficheiro do directório da aplicação é o ficheiro directory.json localizado na pasta de definições do utilizador da aplicação (pasta de definições dentro da pasta de base de dados do servidor da aplicação do servidor fundida):
Incorporar o ficheiro durante o processo de pedido de construção
Até agora, era seu trabalho incluir um ficheiro de directório no servidor fundido, após o processo de construção da aplicação. Se não incluir um ficheiro de directório no pacote da aplicação ou junto ao ficheiro de dados, durante a execução, todos os utilizadores estão a utilizar a conta Designer com todos os seus direitos.
Assim, para que seja mais seguro e fácil, a partir da v19R5, uma nova chave buildApp está à sua disposição. Esta chave incorpora automaticamente o ficheiro do directório do projecto no servidor fundido durante o processo de construção da aplicação:
<BuildApp>
<CS>
<ServerEmbedsProjectDirectoryFile>True</ServerEmbedsProjectDirectoryFile>
Note-se que esta nova configuração também está disponível no diálogo Construir Aplicação:
Comportamento do lado do servidor
O comportamento actual é mantido: o Servidor 4D carrega o ficheiro de directório de dados, se existir. Caso contrário, o ficheiro do directório da aplicação é carregado.
Mas a partir de agora, num projecto de servidor fundido, todas as modificações feitas aos utilizadores, grupos e permissões durante a execução são automaticamente armazenadas no ficheiro do directório de dados. O ficheiro do directório da aplicação nunca é tocado e pode ser considerado como um ficheiro do directório de inicialização. Isto garante que a assinatura da sua aplicação permanece segura em macOS, ou permite-lhe colocar a sua aplicação de servidor numa pasta só de leitura sem qualquer erro.
Na inicialização do servidor, se não existir nenhum ficheiro de directório de dados, os utilizadores, grupos e permissões armazenados no ficheiro de directório da aplicação, se existirem, são carregados. Depois, se forem efectuadas modificações nos utilizadores, grupos ou permissões, estas são armazenadas no ficheiro do directório de dados.
Contabilidade técnica
Os utilizadores e grupos são frequentemente utilizados como contas técnicas por programadores 4D. Isto pode ser feito utilizando a caixa de ferramentas, ou com código 4D, testando o nome do utilizador actual com Current user ou a filiação em grupo com User in group. Nesses casos, para garantir que estes utilizadores e grupos são persistentes, pode verificá-los no arranque do servidor, e as modificações subsequentes serão automaticamente armazenadas no ficheiro do directório de dados!