Los proyectos introdujeron el nuevo archivo directory.json que contiene usuarios, grupos y permisos. Permite la autenticación, las restricciones, los permisos en varias partes de la aplicación, a través de la configuración o el código. Veamos las nuevas mejoras sobre el uso de este archivo en los proyectos de servidores fusionados.
Recordatorio
En un proyecto, los usuarios, grupos y algunos permisos se guardan en el archivo de directorio. Para recordar cómo funciona, puedes volver a leer este blog-post de presentación o ver este vídeo.
Archivos de directorio
El archivo del directorio del proyecto es el archivo directory.json ubicado en la carpeta de configuración del usuario del proyecto (carpeta Settings junto a la carpeta Project del proyecto en uso):
El archivo del directorio de datos es el archivo directory.json ubicado en la carpeta de configuración del usuario para los datos (carpeta Settings junto al archivo de datos en uso):
El archivo del directorio de la aplicación es el archivo directory.json ubicado en la carpeta de configuración del usuario de la aplicación (carpeta Settings dentro de la carpeta Server Database de la aplicación del servidor fusionado):
Incrustar el archivo durante el proceso de construcción de la aplicación
Hasta ahora, era su trabajo incluir un archivo de directorio en el servidor fusionado después del proceso de construcción de la aplicación. Si no incluyes un archivo de directorio en el paquete de la aplicación o junto al archivo de datos, durante la ejecución, todos los usuarios están usando la cuenta del Diseñador con todos sus derechos.
Así que para hacerlo más seguro y fácil, a partir de la v19R5, una nueva clave buildApp está a su disposición. Esta clave incrusta automáticamente el archivo del directorio del proyecto en el servidor fusionado durante el proceso de construcción de la aplicación:
<BuildApp>
<CS>
<ServerEmbedsProjectDirectoryFile>True</ServerEmbedsProjectDirectoryFile>
Tenga en cuenta que esta nueva configuración también está disponible en el cuadro de diálogo Construir aplicación:
Comportamiento del lado del servidor
El comportamiento actual se mantiene: el 4D Server carga el fichero de directorio de datos si existe. En caso contrario, se carga el fichero de directorio de la aplicación.
Pero a partir de ahora, en un proyecto del servidor fusionado, todas las modificaciones realizadas a los usuarios, grupos y permisos durante la ejecución se almacenan automáticamente en el archivo del directorio de datos. El archivo del directorio de la aplicación nunca se toca y puede considerarse como un archivo del directorio de inicialización. Esto garantizará que la firma de su aplicación se mantenga segura en macOS, o le permitirá colocar su aplicación de servidor en una carpeta de sólo lectura sin ningún error.
Al iniciar el servidor, si no existe un archivo de directorio de datos, se cargan los usuarios, grupos y permisos almacenados en el archivo de directorio de la aplicación, si existen. Luego, si se realizan modificaciones en los usuarios, grupos o permisos, se almacenan en el archivo del directorio de datos.
Cuentas técnicas
Los usuarios y grupos se utilizan a menudo como cuentas técnicas por los desarrolladores de 4D. Esto se puede hacer con la caja de herramientas, o con el código 4D comprobando el nombre de usuario actual con Current user o la pertenencia a un grupo con User in group. En estos casos, para asegurarse de que estos usuarios y grupos son persistentes, puede comprobarlos al iniciar el servidor, ¡y las modificaciones posteriores se almacenarán automáticamente en el archivo del directorio de datos!