
Lanzamiento de la API Modeler de Drupal: conoce sus ventajas
Ya en 2021, cuando se diseñó e implementó la arquitectura de ECA, desacoplar el procesamiento de las automatizaciones realizadas por ECA de la interfaz de usuario, que es importante para que los usuarios puedan definir fácilmente esas automatizaciones, ha sido una prioridad máxima. Durante los últimos 4 años, esto ha servido por igual a los desarrolladores y a los usuarios finales. Lo que se conoce como patrón de diseño de "Separación de intereses" en las aplicaciones de software modernas, ha ayudado mucho a ECA. Sin embargo, también nos hemos dado cuenta a lo largo de los años de que probablemente sólo hayamos logrado una parte del objetivo. Al menos dos aspectos han mostrado debilidades o no han sido posibles en absoluto:
La primera deficiencia ha sido que ECA, el procesador, y BPMN, la interfaz de usuario, no han sido totalmente independientes entre sí. Cierto procesamiento previo y posterior de las propiedades de los plugins y de los formularios de configuración, ha formado parte de ECA. Por otro lado, BPMN ha visto limitadas las mejoras de sus características durante mucho tiempo, ya que estaba adaptado a ECA.
Esto ha dado lugar al segundo aspecto, que ha sido imposible reutilizar la interfaz de usuario para otros requisitos del ecosistema Drupal. Una interfaz gráfica como la de BPMN haría que muchas otras tareas fueran mucho más fáciles de usar:
- Agentes de IA con todas las herramientas que necesitan para asignarse y configurarse
- Automatizadores de IA con una combinación de instrucciones deterministas y artificiales
- Migraciones a Drupal con innumerables plugins para fuentes de datos, procesos y destinos
- Vistas para la construcción de consultas a bases de datos
- Modelado de datos con tipos de contenido, paquetes, campos, formularios y visualizaciones
El hecho de que los usuarios puedan tener sentimientos encontrados sobre BPMN también llevó a la idea de sustituirlo por otras interfaces de usuario como las de ReactFlow, n8n u otras.
Esto llevó a la invención y el desarrollo de Modeler API, un módulo de Drupal que proporciona el enlace entre los propietarios de configuraciones complejas como ECA, Agentes IA, Migración y otros, por un lado, y las UI reemplazables como BPMN y otras, por otro. Los objetivos principales son:
- Los propietarios de configuraciones y las interfaces de usuario (modeladores) no saben nada de las capacidades ni de la lógica empresarial del otro.
- Ambos extremos pueden sustituirse sin perder ningún dato:
- los usuarios pueden editar la configuración con la UI de su elección
- la misma configuración se puede editar con diferentes interfaces de usuario
- se pueden editar configuraciones diferentes con la misma interfaz, los usuarios no tienen que aprender herramientas nuevas cada vez.
- Los desarrolladores deben poder centrarse en el propietario de la configuración o en la interfaz de usuario, no en ambos a la vez.
- La API del Modelador también proporciona todos los genéricos, como enrutamiento, creación de listas, permisos, integración de menús, registro, etc.
La versión 1.0.0 se ha publicado hoy, 30 de julio de 2025, junto con ECA 3.0.0 y BPMN.iO 3.0.0, mientras que el módulo AI, así como los Agentes IA y Drupal MCP, también tienen integraciones en sus últimas ramas de desarrollo, que deberían publicarse en versiones estables muy pronto. A continuación, descubre las ventajas reales tanto para los desarrolladores como para los usuarios finales.
Reutilización
Todo lo que se implementa en la API del Modelador sólo tiene que hacerse una vez, y se utilizará en muchos sitios. Lo mismo se aplica a todas las interfaces de usuario, también conocidas como modeladores, como el ya existente BPMN, pero hay otros basados en paradigmas diferentes y en otras tecnologías ya en las marcas. Ahora la Comunidad Drupal puede aprovechar este marco para innovar más rápidamente, y trabajando juntos. Con expertos trabajando en diversas UI, todos los demás se benefician de sus mejoras y correcciones de errores, pues ya no es necesario que cada módulo con requisitos de configuración complejos desarrolle su propia UI.
Claro, lo más probable es que las versiones actuales de Modeler API y BPMN aún no cubran todos los requisitos de los demás módulos que aún no han comenzado su integración con este nuevo conjunto de herramientas. Pero la API Modeler y sus interfaces de usuario de apoyo crecerán continuamente y adoptarán nuevas funciones para servir también a otros escenarios. Sin embargo, cada mejora se hará una vez, y será utilizada por muchos.
UI totalmente desacoplada
Las aplicaciones, tanto dentro como fuera de Drupal, tienen su lógica de negocio que implementar. Hacerlo bien puede ser un reto, y requiere conocimientos y experiencia por parte de los mantenedores y desarrolladores. En el caso de las aplicaciones que también necesitan una configuración compleja, esto conlleva otro conjunto de requisitos, que muy probablemente no estén al alcance de los conocimientos y la experiencia de los mismos desarrolladores y mantenedores. Por lo tanto, separar el propósito genérico de una aplicación de la tarea de proporcionar una forma fácil de configurar dichas aplicaciones es clave.
Separar la interfaz de usuario en sus propios módulos, y más aún reutilizarlos para distintos fines, puede ser alucinante. La idea de que una misma interfaz de usuario sirva para definir automatizaciones de flujos de trabajo, Agentes de IA, Migraciones, Vistas y Tipos de Contenido, suena descabellada al principio. Todos venimos de un mundo en el que cada aplicación trae su propio conjunto de herramientas para configurarlas. Y el resultado es que los usuarios tienen que aprender cosas nuevas para cada una de las tareas de las que tienen que ocuparse.
Modeler API demuestra que la abstracción puede aplicarse con éxito incluso a ese nivel. Y para las distinciones visualmente importantes, en las que la interfaz de usuario necesita representar componentes específicos de la aplicación para que tengan más sentido para el usuario final, se está trabajando en el soporte de tematización personalizada para cada combinación de propietario de configuración y modelador.
Mantenibilidad
La separación de intereses viene intrínsecamente acompañada de interfaces correctamente definidas para que los distintos componentes puedan comunicarse entre sí de forma segura. En consecuencia, el mantenimiento de cada uno de los componentes se vuelve exponencialmente más eficiente. Centrarse en un tema sin tener que preocuparse de otras tecnologías, quizá menos conocidas, permite que el desarrollo avance más rápido y aumente la velocidad de la innovación.
Para la nueva versión ECA 3.0, esto se traduce en una versión totalmente nueva que no ha sufrido cambios en sus características básicas. Toda la base de código permanece inalterada, el formato de entidad de configuración sigue siendo el mismo, sólo se ha actualizado el submódulo ECA UI para que proporcione un complemento que se integre con la API Modeler, y todo lo demás se ha eliminado. A la hora de procesar los modelos ECA existentes, sigue siendo el mismo software, por lo que actualizarlo no supone ningún riesgo. A partir de ahora, ECA puede mantenerse y mejorarse sin tener que preocuparse de nada más que de proporcionar plugins y procesarlos correctamente.
Para la versión BPMN 3.0, el impacto es aún mayor. Ahora es una interfaz de usuario genérica con un ámbito de aplicación claramente definido, y los mantenedores han podido y podrán mejorar mucho su integración y conjunto de funciones. Más información a continuación.
Base de código moderna
Al mismo tiempo que se desmontaba todo y se rediseñaban ECA y BPMN de forma que las funciones genéricas acabaran en la API de Modeler, ha sido obvio limpiar también la base de código existente y aprovechar al mismo tiempo las últimas mejoras de la API upstream, que es lo que da a los módulos la forma adecuada para el futuro.
La mayor parte ha sido en ECA:
- Todos los plugins se han convertido para utilizar atributos PHP en lugar de anotaciones
- La configuración de todos los plugins se define ahora mediante un esquema de configuración y ahora se puede validar
- Los ganchos se han convertido en clases orientadas a objetos con inyección de dependencias adecuada
Por supuesto, la API del Modelador se ha construido desde cero, por lo que sigue los últimos estándares de codificación. Pero la interfaz de usuario BPMN se ha rediseñado desde cero y ahora permite una integración mucho mejor, que trataremos en el siguiente capítulo.
BPMN con una integración mucho mejor con Drupal
La interfaz de usuario de BPMN es una biblioteca JavaScript mantenida por distintos desarrolladores en una plataforma diferente. En Drupal, "sólo" integramos esa biblioteca tal cual, con muy pocos ajustes para el entorno Drupal. Con la nueva arquitectura y ambiciones mucho mayores, para que sirva para muchos más casos de uso y usuarios, la versión 3.0 viene con mejoras revolucionarias que marcan una gran diferencia hoy, pero que también permitirán mejoras significativas en el futuro.
Lo que queda de las versiones anteriores es el lienzo, donde los usuarios pueden arrastrar los componentes del diagrama, añadir nuevos componentes y demás. Pero todo lo demás se ha sustituido por componentes nativos de Drupal. Esa interfaz se parece ahora mucho más a una aplicación de Drupal, y hace que los usuarios finales sean aún más eficientes, ya que el flujo de trabajo se ha optimizado para lo que se necesita en ese contexto. Las mejoras más destacadas son:
- El panel de propiedades de la parte derecha del lienzo se utiliza para configurar todo el modelo y cada uno de sus componentes. Este panel de propiedades lo proporcionaba antes la biblioteca de terceros, que venía con partes innecesarias para el contexto de Drupal y carecía de funciones convenientes que Drupal hace realmente bien. Este panel de propiedades se sustituye ahora por el contenedor fuera de lienzo del núcleo de Drupal, y los formularios de configuración son formularios nativos de la API de formularios de Drupal. Eso permite widgets de campo de formulario a medida, así como estados, de modo que los campos individuales pueden ocultarse en función del contexto.
- Se han añadido widgets adicionales al lienzo. Están construidos utilizando la flamante API de iconos del núcleo de Drupal, y hacen accesibles numerosas funciones a los usuarios finales sin que tengan que recordar atajos u otros trucos. Acercar y alejar, copiar y pegar incluso a través de las pestañas del navegador, un minimapa para navegar mejor dentro de modelos grandes, búsqueda, diseño automático y mucho más, estos son los widgets que los usuarios seguramente no querrán perderse.
- Añadir color a cada elemento del lienzo también puede ser útil en algunos casos, así como las anotaciones. Pero esto es sólo un anticipo de lo que será posible en el futuro, por ejemplo, si se dispondrá de diferentes temas para que los modelos puedan representarse más en función del propósito de la lógica empresarial que cada uno de los modelos representa.
El módulo BPMN es ahora una interfaz de usuario real de Drupal, ya no una biblioteca externa. Esto también permite que se produzcan aún más innovaciones, ya que ahora podemos invitar a expertos en front-end para que nos ayuden a hacer avanzar esto de formas que no han sido posibles con la arquitectura anterior.
Mejoras en la ECA y más integraciones
Ya hemos hablado anteriormente de la mantenibilidad y de una base de código moderna. Ambos temas son muy importantes, sobre todo para los desarrolladores y mantenedores. Sin embargo, los usuarios finales también se beneficiarán de ello, ya que la calidad del código, la sostenibilidad y el conjunto de funciones aumentarán por completo.
Dicho esto, ECA 3 también viene con nuevas funciones e integraciones que no deberían dejarse de lado. Mencionemos las 3 mejoras principales:
Esquema de configuración: parece ser sólo una mejora técnica, ya que ahora se pueden validar los modelos de ECA. Pero también viene con una nueva característica que a menudo se olvida. Como ahora cada propiedad de configuración viene con un tipo específico, el marco de traducción del núcleo de Drupal puede identificar las propiedades orientadas al usuario y hacerlas traducibles con el mismo conjunto de herramientas que ya se utiliza para otras partes de Drupal. Ejemplos de casos de uso son los mensajes y elementos renderizados que se muestran al usuario final, o los correos electrónicos que se envían. Todos esos componentes pueden utilizarse ahora en modelos ECA igual que antes, y en una capa separada puede traducirse el contenido relevante sin tener que aumentar la complejidad del modelo.
Acciones del widget de campo: se trata de un módulo totalmente nuevo, proporcionado actualmente por el módulo AI Agents. Permite configurar los formularios de entidad de modo que se muestren widgets adicionales junto a cualquier campo del formulario, y al hacer clic en ellos se desencadenará un proceso en el backend que volverá con algún contenido para rellenar en el campo del formulario relacionado, o para abrir un diálogo con opciones para seleccionar. Estos widgets de campo son compatibles actualmente con los Automatizadores IA y las Sugerencias de Contenido IA. Ahora, la ECA 3 también los admite. Los modelos ECA pueden construirse de modo que asuman esos widgets para pasar por cualquier tipo de lógica que determine el contenido sugerido para cualquier campo de los formularios de entidad.
Herramientas de IA: Los modelos ECA ahora también pueden construirse para que sean reconocidos como herramienta no sólo por los Agentes de IA, sino también por el servidor MCP de Drupal. Es difícil imaginar la escala en la que esto mejorará la caja de herramientas general de la que ahora disponen los creadores de sitios. El cielo es tu límite; si esa frase ha sido cierta alguna vez, es ahora y aquí.
Conclusión
Drupal como marco, y Drupal CMS como ejemplo de producto construido dentro de ese marco, están recibiendo un impulso a un nuevo nivel. Módulos establecidos como ECA y BPMN están recibiendo importantes revisiones y mejoras. La propia API del Modelador introduce una plataforma que aún no ha sido adoptada por la comunidad. En esta entrada del blog se destacan las ventajas para los desarrolladores y los usuarios finales, del mismo modo, la comunidad Drupal a nivel mundial debería aprovecharla ahora y construir sobre ella.
Añadir nuevo comentario