Despliegue
Llevar una instancia a enforce, y las limitaciones conocidas
Despliegue
enforce es el valor predeterminado. En una instancia con scripts u otros sistemas que lanzan formularios por REST, llega a él por pasos, vigilando el log antes de rechazar nada:
- Define
LAUNCH_VALIDATION=logpara toda la instancia (antes de actualizar, en una actualización). - Funciona en este modo durante un tiempo y revisa el log: las advertencias
would refuseindican lanzamientos que incumplen las reglas; las advertenciasextravars differindican formularios que calculan algo de forma distinta en el servidor (una marca de tiempo, datos externos). Decide para cada formulario si eso importa. - Cambia esos formularios a
launchValidation: enforce. Quien llama enviando valores no válidos o extravars inventadas recibe ahora un422con el motivo. - Cuando todos los formularios se comporten como esperas, quita
LAUNCH_VALIDATION(o defínelo comoenforce) para toda la instancia.
Limitaciones
La validación del lanzamiento todavía no lo cubre todo:
- Los formularios con asistente no se pueden relanzar con cambios, y un trabajo de asistente lanzado antes de la 7.0 no se puede relanzar con
enforce(no guardaba los valores de sus pasos). El servidor MCP no puede lanzar formularios con asistente. - La resolución de marcadores en el navegador sigue usando su propia copia del código del servidor; en casos límite poco frecuentes (
__undefined__, comillas dentro de expresiones) los dos podrían resolver un marcador de forma distinta.logrevela esas diferencias. - Las expresiones
runLocalse ejecutan en el motor JavaScript del navegador en el navegador y en un sandbox en el servidor; el mismo código produce el mismo resultado, salvo cuando depende de la zona horaria o el idioma del navegador.
Formularios con asistente
Un asistente se comprueba paso a paso: el navegador envía los valores de cada paso, y el servidor comprueba cada paso que el usuario enviaría contra su propio subformulario.
- Un paso se omite cuando es
optionaly el usuario lo saltó, o cuando suwhenes false. - Un paso lee los pasos anteriores mediante
$(__parent__.<step>.<field>), con sus valores comprobados. - Los errores nombran el paso y el campo, como
<step>.<field>. - Con
enforce, las extravars se construyen en el servidor, cada paso bajo sudefaultModel. - Los campos de archivo no se admiten en un asistente.