Markdown: documentacion.md · Bitácora: bitacora.html · bitacora.md
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
- Diseñador de flujo (BPMN): Start/User/Service Task, Exclusive Gateway, End Event, Sequence Flow y pantallas en User Task.
- Gestión de actividades: instanciar flujos listos, resolver tareas manuales (Aceptar/Rechazar) y ejecutar automáticas.
- Reporte: avance, filtros y traza de cada instancia.
Entidades (modelo conceptual)
| Entidad | Descripción |
|---|---|
| TipoFlujo | Categoría (texto libre en el mock, ej. Aprobación). |
| Flujo | Tipo, nombre, descripción, estado (borrador | listo), versión. |
| ParametroEntrada | Clave, etiqueta, tipo (texto, numero, fecha, si_no), obligatorio. |
| Nodo BPMN | inicio, manual, automatica, gateway, fin |
| Sequence Flow | Origen, destino, condición (siempre | aceptar | rechazar) |
| Pantalla | Una por User Task |
| BloquePantalla | titulo, texto, dato, comentario; orden definido. |
| Instancia | Copia del flujo al iniciar, valores de entrada, estado, paso actual. |
| PasoInstancia | Actividad resuelta con decisión y comentario. |
| Traza | Eventos 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
- Mock editable en
prototipo/; snapshots congelados enprototipo/versiones/YYYY-MM-DD_HHmm_etiqueta/. - Índice: versiones.html · versiones.md.
- Antes de cambios grandes: nuevo snapshot + bitácora; regenerar
bundle.js/theme-bundle.jscon esbuild. - SemVer (
lib/version.ts) solo aplica con la app Next.js.
Subconjunto BPMN 2.0
- Start Event — parámetros; salida
siempre. - User Task — pantalla; salida
siempreal gateway. - Exclusive Gateway — salidas
aceptaryrechazar. - Service Task — salida
siempre. - End Event — sin salidas.
Arquitectura objetivo (implementación futura)
Tres capas; la implementación arranca contra Supabase local (Docker), no contra la nube.
validation y motor del prototipo; validación Zod. Auth productiva por definir (Supabase Auth vs NextAuth/Azure AD — alinear con supabase-hooks.mdc al implementar).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)
- Migración en Git antes de cualquier DDL.
npx supabase migration new→ validar →npx supabase db pushen DESA.- Regenerar
lib/supabase/types.tsy corrernpm run verify. - No DDL en stage/prod desde el IDE; merge + deploy.
Detalle completo: regla Cursor supabase-migrations.mdc. Setup: docs/setup/supabase-setup.md (a crear).
Fuera de alcance (fase mock actual)
- Proyecto Next.js, Tailwind, i18n, Zod y cliente Supabase.
- Docker,
supabase inity migraciones hasta pedir implementar. - Asignación por usuario/rol y acciones automáticas reales (email, webhooks).
- Diseñador avanzado (zoom, minimapa, historial ilimitado).