Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimizar manejo de configuraciones en un solo archivo #65

Open
gpilla opened this issue Oct 31, 2019 · 2 comments
Open

Optimizar manejo de configuraciones en un solo archivo #65

gpilla opened this issue Oct 31, 2019 · 2 comments

Comments

@gpilla
Copy link

gpilla commented Oct 31, 2019

En el marco de la dockerización en producción sería optimo si se puede enviar a un solo archivo todas las configuraciones disceminadas.

En el caso de la dockerización de nuestra intalación de SIU-Guaraní... los archivos modificados son:

  • instalacion/i__desarrollo/p__guarani/rest/kolla/cliente.ini
  • instalacion/i__desarrollo/p__guarani/rest/sube/cliente.ini
  • instalacion/i__desarrollo/p__guarani/rest/servidor_usuarios.ini
  • instalacion/i__desarrollo/p__guarani/rest/servidor.ini
  • instalacion/i__desarrollo/instancia.ini
  • instalacion/bases.ini
  • instalacion/entorno_toba.env
  • instalacion/toba.conf
  • instalacion/rdi.ini
  • instalacion/instalacion.ini
  • menu.ini <--- particular del proyecto

Es una tortura.

Se me ocurre que si se quiere seguir manejando en archivo puede ser JSON, YAML o DOTENV. Este ultimo sería optimo si podemos tambien manejarlo para que tome las variables de entorno $_ENV y asi evitar incluso la escritura de archivos y a su vez, se evita el archivo instalacion/entorno_toba.env

Para la organización inventar "namespaces" equivalentes a los directorios actuales.

@sergiovier
Copy link
Contributor

sergiovier commented Oct 31, 2019

Gustavo,

Un paliativo sería que (re)definan en los archivos .ini las configuraciones para que lean valores de entorno directamente. Ej con bases.ini:

[toba_3_1]
motor = "postgres7"
profile = "$env(PROYECTO_DB_HOST)$"
usuario = "$env(PROYECTO_DB_USERNAME)$"
clave = "$env(PROYECTO_DB_PASSWORD)$"
base = "$env(PROYECTO_DB_DBNAME)$"
puerto = "$env(PROYECTO_DB_PORT)$"
encoding = "LATIN1"
schema = "toba_arai_usuarios"

@enfoqueNativo tendría que saber a cuales archivos .ini se les puede aplicar esta forma de configuración y a partir de que versión de Toba. Lo cierto es que no soluciona el hecho de que toda la configuración esté diseminada en el filesystem.

@enfoqueNativo
Copy link
Contributor

@gpilla Es la idea, ir convergiendo en un único archivo de configuración (por ahora el formato no esta decidido) y mientras tanto concentrar el acceso a la información via toba_config.

En dicha clase están los archivos mínimos que se cargan siempre, después explicitamente se están cargando algunos archivos básicos mas de toba como ser instancia.ini, etc.

Para terminar de completar el pasaje, necesito modificar aun algunas clases del modelo (sobre todo las de WS REST) restantes y hacer que los proyectos empiecen a centralizar la lectura de parámetros propios vía toba_config (aca me podes ayudar ;) ) de forma que se acostumbren a cargar explicitamente sus archivos.

A partir de la versión 3.1.12 (y un poco antes también) tenes la posibilidad de incluir variables de entorno como valores en los archivos ini (tal como menciona @sergiovier ), es una solución de compromiso.. hasta que completemos la transición.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants