Documentación del prototipo

Modelo conceptual y arquitectura objetivo

Propósito

Este prototipo HTML valida el diseño de un gestor de flujos de trabajo antes de implementarlo con Supabase. Separa la definición del flujo (diseñador) de la ejecución (instancias, traza y reporte). El mock sigue vigente; la app Next.js es la fase siguiente.

Menú del mock

Entidades (modelo conceptual)

EntidadDescripción
TipoFlujoCategoría (texto libre en el mock, ej. Aprobación).
FlujoTipo, nombre, descripción, estado (borrador | listo | deprecado), versión al confirmar, lineageId, supersedesFlowId.
ParametroEntradaClave, etiqueta, tipo (texto, numero, fecha, si_no), obligatorio.
Nodo BPMNinicio, manual, automatica, gateway, fin
Sequence FlowOrigen, destino, condición (siempre | aceptar | rechazar)
PantallaUna por User Task
BloquePantallatitulo, texto, dato, comentario; orden definido.
InstanciaCopia del flujo al iniciar, valores de entrada, estado, paso actual.
PasoInstanciaActividad resuelta con decisión y comentario.
TrazaEventos inmutables para auditoría y reporte.

Diagrama entidad-relación (referencia Supabase)

TipoFlujo 1 —— * Flujo
Flujo 1 —— * ParametroEntrada
Flujo 1 —— * Nodo
Flujo 1 —— * Transicion
Nodo * —— * ParametroEntrada  (UsoDato)
Nodo 1 —— 0..1 Pantalla  (solo actividad manual)
Pantalla 1 —— * BloquePantalla
ParametroEntrada 1 —— * BloquePantalla  (bloques tipo dato)
Flujo 1 —— * Instancia
Instancia 1 —— * PasoInstancia
Nodo 1 —— * PasoInstancia
Instancia 1 —— * Traza

Tablas sugeridas (implementación futura)

flujo.flujos (id, tipo, nombre, descripcion, estado, version, created_at)
flujo.parametros_entrada (id, flujo_id, clave, etiqueta, tipo, obligatorio)
flujo.nodos (id, flujo_id, kind, nombre, descripcion, pos_x, pos_y)
flujo.nodo_parametros (nodo_id, parametro_id)
flujo.transiciones (id, flujo_id, from_nodo_id, to_nodo_id, condicion)
flujo.pantallas (id, nodo_id)
flujo.bloques_pantalla (id, pantalla_id, orden, tipo, texto, parametro_id)
ejecucion.instancias (id, flujo_id, flujo_snapshot jsonb, estado, input_values jsonb, current_nodo_id, started_at, finished_at, created_by)
ejecucion.pasos_instancia (id, instancia_id, nodo_id, estado, comentario, at)
ejecucion.trazas (id, instancia_id, tipo, mensaje, decision, comentario, data_shown jsonb, at)

Persistencia del mock

Claves localStorage: gestor_flujos_prototipo_v2 (datos) y gestor_flujos_theme_v1 (tema). Ejemplo «Aprobación de gasto» con User Task → Exclusive Gateway.

Procedimiento de versionado del mock

Líneas BPMN en el diseñador

TipoEjecuta en GestiónNotas
Sequence FlowSíPuertos, herramienta o panel Propiedades
Message FlowNoSolo diagrama
AssociationNoEnlace visual

Flujo nuevo: incluye Start y End en el lienzo.

Compuertas: catálogo de siete tipos BPMN en paleta/context pad/propiedades; solo Compuerta Exclusiva activa; demás marcadas Futuro.

Viewport diseñador: teléfono bloqueado («Esto no se puede hacer en tu dispositivo…»); recomendado ≥1024×768; avisos en PC baja resolución y tablet.

UI canvas-first: paneles Elementos y Propiedades cerrados por defecto; toggles en la barra del lienzo (todos los anchos); flyouts en escritorio; al seleccionar nodo se abre Propiedades. Secciones internas colapsables con scroll.

Start/End Event: siempre dentro del pool; pueden estar en lanes distintos.

Estudio: Camino (BPMN), Pantalla (formularios User Task), Automatización (REST/SOAP/GraphQL/conectores); contexto de instancia y trazas de integración.

Context pad: menús siempre horizontales/verticales; en gateway el rombo no inclina el pad.

Lienzo: pool con nombre y títulos de lane verticales; ancho del pool proporcional al viewport; encuadre automático al abrir y al resize; zoom/pan; pantalla completa reajusta la vista.

Subconjunto BPMN 2.0

Arquitectura objetivo (implementación futura)

Tres capas; la implementación arranca contra Supabase local (Docker), no contra la nube.

Presentación — Next.js, React 19, App Router, Server Components, Tailwind CSS, responsive, idiomas ES / EN / PT. Pantallas equivalentes al mock (diseñador con pantallas manuales, gestión, reporte).
Negocio (API First) — API Routes de Next.js; reglas en validation y motor del prototipo; validación Zod. Auth productiva por definir (Supabase Auth u OIDC/NextAuth).
Datos — Postgres vía Supabase CLI (supabase start); schemas flujo y ejecucion; RLS en migraciones; cloud después con el mismo historial.
Mock HTML (actual) → Implementación → Supabase local + migraciones → Supabase Cloud

Migraciones

Esquema y políticas solo en supabase/migrations (supabase migration new). No editar el Studio como fuente de verdad.

Anexo — Checklist Supabase (fase futura)

  1. Migración en Git antes de cualquier DDL.
  2. npx supabase migration new → validar → npx supabase db push en DESA.
  3. Regenerar lib/supabase/types.ts y correr npm run verify.
  4. No DDL en stage/prod desde el IDE; merge + deploy.

Detalle: migraciones versionadas en Git; setup documentado al iniciar Supabase en un repo de implementación.

Fuera de alcance (fase mock actual)