Descripción:
Algunas integraciones externas necesitan mostrar al usuario una URL que apunte a Gladys mismo. Caso concreto con la integración OCPP: el usuario debe configurar su estación de carga (a través de la aplicación del fabricante) para que se conecte al relay alojado por la integración, con una URL del tipo ws://<ip-de-gladys>:<puerto asignado>. Actualmente, no hay forma de mostrar esta URL: el usuario debe encontrar él mismo la IP de su instancia y el puerto asignado.
El contenedor de la integración no puede proporcionar esta información de manera fiable: en el lado del servidor, solo se puede resolver la dirección de Gladys vista desde el contenedor (gateway del bridge, alias interno), y Gladys no conoce su propia IP LAN de manera segura (multi-interfaces, reverse proxy, VPN). Exponer un getHost() en el SDK a menudo devolvería un valor falso. Sin embargo, el navegador del usuario conoce la dirección correcta, ya que es así como se construye el enlace « Abrir » de los puertos publicados.
Propuesta: soportar placeholders en los textos declarativos del manifiesto (bloques section del config_schema en primer lugar), sustituidos por el front al mostrar:
{{gladys_host}}: el hostname por el cual el usuario accede a Gladys{{port:<nombre>}}: el puerto del host asignado al puerto declarado<nombre>en el manifiesto
La integración OCPP podría mostrar así un bloque del tipo: « Configure su estación para que apunte a ws://{{gladys_host}}:{{port:ocpp}} », con una URL completa y copiable. El mecanismo sigue siendo 100% declarativo, ningún código inyectado por la integración.
Límite conocido y asumido (ya cierto para el enlace « Abrir »): si el usuario navega a través de un túnel Gladys Plus o un reverse proxy, el hostname mostrado no será la IP LAN. Debe documentarse.
Contexto: feedback de @Sescandell sobre la integración OCPP, ver el tema WIP estación de carga de vehículo eléctrico protocolo OCPP.