Skip to main content

El directorio de configuración

FIREFLO_CONF_DIR decide dónde viven los cuatro archivos de configuración, y mueve los cuatro a la vez.
Un valor relativo (incluyendo el conf predeterminado) resuelve contra el directorio de trabajo del proceso, no contra el artefacto.Eso es correcto para un checkout y equivocado para un servicio. Una unidad con WorkingDirectory=/opt/fireflo y sin FIREFLO_CONF_DIR lee /opt/fireflo/conf/, que no es donde nadie editó nada. Una instalación empaquetada lo establece a una ruta absoluta.
Cada archivo aún puede moverse por su cuenta, y una anulación por archivo gana sobre FIREFLO_CONF_DIR. Las fuentes de entorno se sitúan en mayor precedencia que application.properties: En la imagen Docker el directorio de trabajo es /work, así que el directorio de configuración predeterminado es /work/conf. Consulta Docker.

Valores por defecto de propiedad a nivel de pasarela

Cualquier búsqueda outSms.instance.<name>.<property> que no encuentre valor cae a outSms.default.<property> antes del predeterminado incorporado. Eso da un baseline que cada worker hereda, anulable por instancia:
La palabra duplicada en outSms.default.default.tlvs.submit es correcta. El primer default es el nivel de fallback; el segundo es parte del nombre de propiedad default.tlvs.submit.
Así que un ajuste de worker resuelve a través de tres niveles, el más específico primero:
1

outSms.instance.<name>.<key>

El valor propio de este worker, de smsg.properties o de app_worker_property en modo base de datos.
2

outSms.default.<key>

El baseline para todo el despliegue.
3

El predeterminado codificado

A qué recurre el proveedor o listener cuando nada lo establece. Están listados en Ajustes SMPP.
No todo ajuste puede acotarse a un listener. Uno que no puede mantiene su forma escueta, lee un global que nadie establece, y por tanto lee su predeterminado codificado independientemente de cómo lo configures.whitelist.tlvs.replace se distribuyó así una vez, y no selló nada sobre SMPP durante todo lo que duró. Si un ajuste por listener parece no hacer nada, esto es lo primero que comprobar.

Los cuatro archivos

En modo db cada watcher de archivo se retira y ninguno de estos se lee tras el arranque. Excepto smsg.properties, que aún se lee al arranque, porque el interruptor de fuente y el datasource tienen que venir de algún sitio. Consulta Base de datos.

Endpoints OpenAPI

Mientras el servidor HTTP está ejecutándose:
Prefiere la referencia de la API REST en este sitio sobre cualquier documento OpenAPI del que generes un cliente. Una especificación más antigua aún está en circulación que tipa custom_tlvs como un array que el parser rechaza y omite product por completo.