Closed pavel-kalmykov closed 6 years ago
El nuevo JSON de configuración deberá de tener el siguiente aspecto:
{
"aes_key": "6368616e676520746869732070617373",
"database": {
"engine": "postgres",
"port": 5432,
"user": "sds",
"password": "sds",
"name": "sds"
},
"server": {
"ip": "localhost",
"port": 10443,
"cert": "cert.pem",
"key": "key.pem"
},
"mail": {
"host": "smtp.gmail.com",
"port": 587,
"username": "mantecabox@gmail.com",
"password": "ElChiringuito"
}
}
En https://mholt.github.io/json-to-go/ puedes convertir dicho JSON en una estructura de Go. Es posible que el JSON cambie con el tiempo.
Desarrollando en configuracion-entornos.
Se ha creado un script en bash que automáticamente arranca la imagen docker (si el contenedor estaba siendo ejecutado, antes lo para y lo elimina).
Descripción
En el estado actual de desarrollo, para la parte del servidor, estamos teniendo una serie de carencias o problemas de configuración que actualmente tenemos que resolver a mano:
configuration.json
, situado en la raíz del proyecto, yconfig.json
, situado en el paquetewebservice
, el cual indica el puerto a utilizar y el nombre de los certificados para el SSL.Por otra parte, cuando ejecutamos alguna suite de tests, el fichero de configuración que lee es el mismo que cuando ejecutamos el programa de forma corriente. Esto hace que se use la misma base de datos y, al terminar los tests, esta queda vacía.
Necesitamos implementar una serie de funcionalidades que resuelvan estos problemas y podamos tener una configuración más automatizada y que además la ejecución de los tests se realice sobre otra base de datos diferente a la de desarrollo.
Condiciones de satisfacción
config.json
situado en el paquetemantecabox
se fusionará con el deconfiguration.json
para que sea este último quien administre todos los ajustes del servidor. Al igual que se hace con el primer archivo, en el nuevo -que será la mezcla de ambos- también tendrá parámetros por defecto si el JSON parseado no consigue encontrarlos.MANTECABOX_CONFIG_FILE
no esté definida, se comprobará si estamos en un entorno de desarrollo o si bien es de testeo, en cuyos casos los nombre de los ficheros a leer seránconfiguration.json
yconfiguration.test.json
, respectivamente. Este segundo fichero tendrá una configuración de base de datos y puerto diferente al normal para que los tests puedan ser ejecutados incluso con el servidor en ejecución. La base de datos de testeo deberá de existir (se deberá crear -comprobando si ya existe o no- mediante una migración) y deberemos de estar seguros de que, al igual de que en el entorno de desarrollo, todas las migraciones han sido ejecutadas.Referencias