Flow — Visual API Orchestrator (web + CLI + MCP). v5.15.1
5.2K
Flow (flow-test) es una herramienta visual + CLI + MCP para componer, ejecutar y verificar
flujos de peticiones HTTP y consultas SQL encadenadas: importas comandos curl, conectas
nodos, extraes datos de las respuestas (JSONPath / columnas SQL) y los reutilizas en los
siguientes pasos con {{variables}}.
Este repositorio es solo documentación: todo lo necesario para usar Flow al máximo desde la imagen Docker oficial, sin código fuente.
┌─────────────┐ comandos MCP ┌──────────────────────────────────────┐
│ IA (Claude) ├──────────────────► contenedor juankanh/flow-app │
│ claude mcp ◄──────────────────┤ · Web (canvas en :3001) │
└─────────────┘ estado/resultados│ · CLI (flow runner) │
│ · MCP (/mcp, 37 tools) │
tú miras el canvas ────────► · SQL (postgres/mysql/oracle) │
└──────────────────────────────────────┘
docker run -d \
--add-host=host.docker.internal:host-gateway \
-p 9998:3001 \
-p 1025:1025 \
--name flow \
juankanh/flow-app:5.15.1
docker exec flow node cli/run-flow.js --dir flows — ejecuta baterías de flows.localhost:1025 que recibe los correos de tus servicios y los muestra (buzones @midominiotest.com, sin cuentas reales); desde la 4.37 la IA lo maneja por MCP (mail_*).claude mcp add --transport http flow-test http://localhost:9998/mcp
— la IA construye y ejecuta flows en tu canvas, mientras lo ves.¿Prefieres tocar antes que leer? Monta la galería de ejemplos como tu workspace y la app abre con un tour guiado dentro del propio producto — cada ejemplo se ejecuta con un clic:
git clone https://github.com/jks90/flow-test-public.git
docker run -d \
--add-host=host.docker.internal:host-gateway \
-p 9998:3001 --name flow \
-v "$(pwd)/flow-test-public/examples/workspace:/app/flows" \
juankanh/flow-app:latest
# abre http://localhost:9998 → icono «Proyecto» → «00 EMPIEZA AQUÍ.md»
Dentro: aprende/ (variables, asserts, entornos, scripts, SQL, data-driven — un concepto por flow,
5 minutos cada uno), funciones/ (monitor 24x7, webhook desde CI, correo OTP, puente a local),
flowtest-por-dentro/ (nuestra propia plataforma probada con nuestra propia herramienta: alta,
login, compra de licencia y salud — el funnel real, documentado como flow) paneles/ (los
vistosos para enseñar en una demo) y scripts/ (🆕 5.14: señales de mercado, semáforo del tiempo y
verificación de pedidos calculados con scripts JS dentro del flow, gráficos Mermaid incluidos, y dos flows cuyos
scripts dibujan botones, páginas y acciones encima de FlowTest). Todos con asserts, verificados con el CLI antes de publicarse.
Detalle en examples/README.md. (El tour en .md se abre desde la 5.5.0.)
| Versión | Qué trae |
|---|---|
| 5.15.1 (recomendada) | 🛡️ Sandbox de los scripts de nota en el navegador: un flow que no es tuyo (abierto de disco o del cloud, importado, de la galería) ejecuta sus scripts JS en un sandbox sin página, sin sesión y sin red; si un script necesita dibujar interfaz o llamar al MCP, la app pregunta antes de ejecutarlo y puedes marcar el flow como de confianza (chip 🔒 / 🛡️ en la barra; se recuerda por fichero en tu navegador). Imagen con parches de Alpine y sin npm en el contenedor |
| 5.15.0 | 🛡️ Primera versión del sandbox en el navegador y de los flows de confianza (la 5.15.1 pregunta antes de ejecutar en vez de tras un fallo silencioso) |
| 5.14.3 | 🔒 Dependencias sin vulnerabilidades conocidas (npm audit a cero) y tope de memoria de los runners del servidor (FLOW_RUNNER_HEAP_MB, 512 MB) |
| 5.14.2 | 🖼️ El visor de documentos .md del proyecto muestra cualquier imagen del proyecto (rutas relativas al documento), no solo las de flows/assets/ |
| 5.14.1 | 🔒 Seguridad: los scripts JS de las notas se ejecutan en el servidor dentro de un sandbox (sin acceso a variables de entorno, red interna ni módulos del sistema) y, en el cloud, un cortafuegos de salida impide que un flow alcance servicios internos u otras organizaciones. Ver el informe de seguridad (docs/seguridad.md) |
| 5.14.0 | 📮 Reportar un problema desde la app (Config ▸ Reportar un problema, o 💬 en el móvil): error, idea o pregunta con captura del canvas, imagen pegada y datos técnicos opcionales (secretos tapados); bandeja del equipo, respuesta por email y «Mis reportes» en la app y en la cuenta. Pro/Business; sin red se guarda y se reintenta. El asistente de IA lleva la skill de flows de serie y un editor de instrucciones del proyecto; galería scripts/ con 5 flows |
| 5.13.1 | 🤖 IA también en el móvil (pestaña «✨ IA» en /m: explica, revisa y propone sobre el flow; con el escritorio abierto edita ese canvas), «Entrar con Anthropic» (login OAuth sin claves), conexión directa desde el navegador, Ctrl+V de capturas en el chat y «Guardar como…» ▸ ☁️ Cloud |
| 5.13.0 | 🤖 Asistente de IA: un chat dentro de la app que construye, explica, prueba y arregla flows en tu canvas en directo con tu clave de Claude u OpenAI; ves cada tool con su input mientras se escribe, pide permiso antes de borrar o ejecutar, se para y se deshace por turno; comandos /explain /test /fix /docs, adjuntos (OpenAPI, HAR, PDF, capturas), coste por turno y tope mensual |
| 5.12.0 | 🔗 Compartir enlace: publica una foto del canvas en una URL pública que abre cualquiera sin la app ni cuenta — se ve como el PDF, en el navegador. Con el Docker vinculado se publica en tu espacio del cloud (https://<org>.app.flowtest.es/share/…); caducidad opcional, visitas, y gestión desde el modal, tu cuenta y el admin |
| 5.11.0 | 📱 Versión móvil: entra en /m desde el teléfono para ejecutar flows y ver el resultado paso a paso, y leerlos como documentación. App aparte y ligera, instalable en la pantalla de inicio |
| 5.10.0 | 🗂️ El panel Proyecto apunta a tu cloud: con el Docker vinculado, lista y guarda los flows de tu espacio del cloud; el selector 💻 Local / ☁️ Cloud arranca en el entorno que gobierna |
| 5.9.1 | 🔧 Modo vinculado más limpio: chip discreto «☁️ org ● plan» en la barra superior en vez de la franja de aviso, y el panel Proyecto / los chips PRO se actualizan al instante al conmutar licencia ↔ cuenta cloud |
| 5.9.0 | ☁️ Sincroniza tus flows local ↔ cloud: si tu Docker está vinculado a tu cuenta, trae o sube flows entre tu disco y tu espacio del cloud desde el botón ☁️ del panel Proyecto (respeta carpetas privadas; el token se queda en el servidor) |
| 5.8.1 | 🔁 Interruptor licencia ↔ cuenta cloud: si tienes clave y cuenta vinculada, un selector elige cuál gobierna la instalación (sin mezclar); pausar la vinculación vuelve a la licencia con un clic |
| 5.8.0 | 🤖 Conecta tu IA al cloud (token MCP por usuario) · 🐳 vincula tu Docker a la cuenta (hereda el plan de tu suscripción, sin claves) · credenciales con ámbito 🔒 privado / 👥 del equipo |
| 5.7.0 | 🔒 Credenciales cifradas ({{secret:X}}, AES-256 server-side) · carpetas privadas por miembro en el cloud (privado/<tú>/) con guardar Compartido/🔒 Privado · Business = 1.000 flows (10× Pro, no ilimitado) · fixes de colaboración (roster sin usuarios fantasma) |
| 5.5.0 | 👥 Colaboración en vivo (Business): presencia + edición del mismo flow sincronizada por nodos entre navegadores, con aviso de pisada; Ctrl+Z/Ctrl+Y del canvas (todos los planes); galería montable con tour ▶; panel Proyecto compacto estilo árbol; leer .md libre en trial; imagen sin componentes GPL |
| 5.4.0 | Monitores programados: el servidor ejecuta el flow cada N min sin navegador, historial de 100 runs y aviso por POST al fallar (modal «Automatización…») |
| 5.3.0 | CI + specs: asserts por nodo (CLI exit ≠ 0), entornos con nombre (--env), webhook entrante (POST /hook/<token>), data-driven (--data) e import OpenAPI/Swagger |
| 5.1.0 | Prueba 14 días + licencia online (validada y revocable); ver/editar nunca se bloquea |
| 5.0.1 | Fix de seguridad: la imagen ya no incluye flows del proyecto — solo el flow de bienvenida limpio. Usa siempre ≥ 5.0.1 |
| 5.0.0 | Licencias por token (JWT): uso personal gratis; comercial/equipo/nube con licencia. Config ▸ Licencia activa la clave (RS256 offline) |
| 4.51.3 | Licencia propietaria: uso personal y no comercial gratis con todas las funciones (self-hosted); uso comercial / equipo / nube con licencia de pago. La imagen incluye el fichero LICENSE. |
| 4.51.2 | Scripts «después» con vars y variables vivas en la pizarra · 4.51.2: el PDF exportado incluye la imagen de fondo y las imágenes de la pizarra también desde Docker (4.51.1: el MCP conserva when al crear notas con node_add_info): cada script JS de una nota puede correr antes de la primera petición o al terminar Run Flow con todas las extracciones (return (vars.wti - vars.wtiPrev).toFixed(2), semáforos 🔴/🟢…); todo script recibe vars; los textos e imágenes de la pizarra resuelven {{variables}} al pintarse. Web / CLI / MCP (when) |
| 4.50.0 | Imágenes y GIF en la pizarra: sección «Imagen / GIF» del panel Pizarra (fichero subido al proyecto o URL) y Ctrl+V de una imagen del portapapeles; los GIF se animan; se mueven, redimensionan (proporción fija, Shift la libera), duplican y ordenan como cualquier dibujo, viajan en el .flow.json y el MCP las añade con whiteboard_update (type: image) |
| 4.23 – 4.41 | Scripts JS de las notas al Run Flow y 📌 fijar cajas, Pizarra estilo Excalidraw, flows/ como proyecto (panel Proyecto + Ctrl+S), Config ▸ Vista (tamaño de nodos, modo compacto), campo # con celda y Alinear en cuadrícula, cabecera de cajas simplificada, activar/desactivar nodos, extracciones plegables con ↻, MCP con control total (33–37 tools, correo incluido), cadenas entre cualquier tipo de nodo, 10 fuentes en la pizarra, Correo de prueba (SMTP embebido :1025 + mail.tm + código OTP), documentos .md como pestañas y árbol de carpetas — historial completo en el manual (11) |
| 4.3.0 | Nodos de nota en modo Mermaid («Add Mermaid»): diagramas renderizados en vivo en el canvas, con interpolación {{variable}} — esquematiza qué llama a qué junto al propio flow |
| 4.2.0 | MCP embebido (/mcp, 18 tools: la IA construye/ejecuta flows en la web en directo) + puente AI↔web por SSE + typecheck del frontend saneado |
| 4.1.x | El CLI ejecuta sqlNodes (Postgres/MySQL/Oracle) con paridad con la web: perfiles de conexión, {{variables}} en queries, extracciones por columna. ⚠️ Desde aquí --dir flows toca BBDD reales (--skip-sql-nodes para el comportamiento antiguo) |
| 4.0.16 | Web + CLI HTTP: curl import, extracciones JSONPath, reports en resumen/, batch, cron, multi-pestaña |
| 4.4 – 4.22 | Nodo Web + modo Live (login real, capturas con sus llamadas HTTP), flow-explore, Chromium en la imagen, CAs corporativas en /certs, teclado directo en Live, checks LNA desactivados, nº de orden y alineado — historial completo en el manual |
docker pull juankanh/flow-app:5.15.1
| Guía | Contenido |
|---|---|
| docs/manual/ | 📘 Manual de uso completo con capturas de pantalla anotadas: la pantalla principal, cada tipo de nodo, variables, Vista (tamaño de nodos, modo compacto, separación), proyecto (flows/ + Ctrl+S), pizarra, correo de prueba (SMTP), guía de nodos, modo Live, flow-explore, paneles, CLI, MCP y Docker |
| docs/instalacion-docker.md | Montar la imagen: puertos (web y SMTP de prueba), redes, variables de entorno, persistencia de flows, actualizar de versión, troubleshooting |
| docs/cli.md | El runner por terminal: flags, baterías, reports, exit codes para CI, nodos SQL y perfiles de conexión |
| docs/mcp.md | Conectar una IA: Claude Code y Claude Desktop, las 37 tools (incl. correo de prueba), seguridad, flujos de trabajo típicos |
| docs/flows-formato.md | El formato .flow.json a fondo: nodos HTTP y SQL, conexiones, variables y extracciones — para escribir flows a mano o con IA |
| skills/flows/ | Skill para agentes IA (Claude Code): cómo trabajar con Flow + schema de autoría — cópiala a tu proyecto |
| examples/ | Flows de ejemplo listos para cargar o ejecutar |
| Fichero | Para qué |
|---|---|
| bin/flow-run | El CLI en tu máquina sin código fuente: wrapper que ejecuta el runner de la imagen montando tu directorio actual — flows y reports quedan en tu disco. cp bin/flow-run ~/.local/bin/ && chmod +x ~/.local/bin/flow-run |
| docker-compose.example.yml | Compose de referencia: puertos, volumen de flows, env vars del MCP y red de tus APIs |
| .mcp.json.example | Config MCP por proyecto para Claude Code (transporte HTTP) |
| mcp-config.stdio.example.json | Config para clientes MCP solo-stdio (vía mcp-remote) |
1. Ver la web y crear un flow a mano → abre http://localhost:9998, pulsa Add Request,
pega un curl, conecta nodos y Run Flow.
2. Ejecutar una batería por terminal (CI):
docker exec flow node cli/run-flow.js --dir flows --report-root /tmp/resumen
docker cp flow:/tmp/resumen ./resumen # informe completo (report.md, debug por flow…)
3. Que una IA construya el flow mientras lo miras:
claude mcp add --transport http flow-test http://localhost:9998/mcp
# abre http://localhost:9998 en el navegador y dile a Claude:
# «crea un flow que haga login en mi API y liste los usuarios con el token»
4. Guardar lo que la IA construyó y ejecutarlo en CI: la tool flow_save deja el
.flow.json en el contenedor; docker exec flow node cli/run-flow.js --flow flows/mi-flow.flow.json
lo ejecuta igual que la web.
5. Trabajar sobre tu carpeta de flows como un proyecto (4.25): monta -v /tu/carpeta:/app/flows
(o -v /tu/carpeta:/data/flows -e FLOW_FLOWS_DIR=/data/flows), abre el panel Proyecto en la web y
edita/guarda con Ctrl+S directamente en tus ficheros — versionables en git y ejecutables por el CLI
sin pasos intermedios.
node:20-alpine).La imagen se publica en Docker Hub como
juankanh/flow-app.
Componentes de terceros incluidos en la imagen y sus licencias: LICENCIAS.md.
flow-test es software propietario (LICENSE):
Para una licencia comercial, contacta con el autor a través de este repositorio.
flow-test funciona gratis para uso personal. Para uso comercial, en equipo o en la nube necesitas una licencia (ver LICENSE). Una vez la tengas:
flows/.license y se verifica al momento.-e FLOW_LICENSE="<tu-clave>".La verificación es offline (tu clave nunca sale de tu máquina): el servidor comprueba la firma RS256 con una clave pública empaquetada. Para conseguir una licencia comercial, contacta con el autor a través de este repositorio.
Content type
Image
Digest
sha256:b04c5a36b…
Size
385.2 MB
Last updated
8 days ago
docker pull juankanh/flow-app