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), versión.
ParametroEntradaClave, etiqueta, tipo (texto, numero, fecha, si_no), obligatorio.
Nodoinicio | manual | automatica | fin; posición; datos que consume.
TransicionOrigen, destino, condición (siempre | aceptar | rechazar).
PantallaUna por actividad manual.
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

Clave localStorage: gestor_flujos_prototipo_v1. Incluye un flujo de ejemplo «Aprobación de gasto» listo para instanciar.

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; Supabase Auth en la app productiva.
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, supabase db reset). No editar el Studio como fuente de verdad.

Fuera de alcance (fase mock actual)