¿Qué es esto?
Lo que está por revisar es el MVP funcional del Core Domain de SAF5-Contratos: el ciclo end-to-end de un fideicomiso desde su captura inicial hasta su estado activo post-aprobación multi-firma. El objetivo es demostrar la propuesta de valor primaria: el banco puede responder en segundos con evidencia trazable quiénes son sus entidades, qué contratos administran y cómo se aprobaron las decisiones.
Credenciales de demo
Tres usuarios preconfigurados con niveles distintos para que pueda ver el filtrado por rol en la bandeja de aprobación. Misma contraseña para los tres — es ambiente de revisión, no producción.
| Rol | Nivel | Contraseña | |
|---|---|---|---|
| oficial@bancoacme.hn | Oficial | 1 | ChangeMe123! |
| gerente@bancoacme.hn | Gerente | 2 | ChangeMe123! |
| compliance@bancoacme.hn | Compliance | 3 | ChangeMe123! |
Tour guiado (5 pasos)
Ejecute estos pasos en orden con el usuario gerente (nivel 2). El flujo demuestra la propuesta de valor end-to-end.
- 01
Login y shell
Ingrese con gerente@bancoacme.hn. Verá el sidebar con Contratos, Entidades, Aprobaciones, y placeholders de Fase 2/3. El branding SAF5 debe verse en el logo, paleta (teal + púrpura) y tipografía Kanit en los headings.
- 02
Entidades · cross-contract view
Abra Entidades → seleccione la persona jurídica (Constructora demo). La vista de detalle muestra la tabla "Todos los fideicomisos donde interviene" — este es el argumento de venta primario. Resuelve el dolor CNBS que el banco tiene hoy.
- 03
Contrato existente
Abra Contratos → seleccione cualquiera con estado Active. Verá las partes (fiduciario, fideicomitente, beneficiarios), el tipo de fideicomiso, y en el detalle la línea de tiempo de eventos (creación, revisión, 3 firmas, aprobación). Todo trazable.
- 04
Aprobaciones
Abra Aprobaciones. Como gerente (nivel 2) solo verá requests que piden su firma — nivel 1 del oficial no aparece. Cambie a compliance@bancoacme.hn para ver nivel 3. El filtrado por nivel es automático desde el JWT, no un query param manipulable.
- 05
Intento de mutación inmutable (opcional)
Si quiere probar las invariantes, desde el oficial intente crear un contrato y después editar el fiduciario — la API devuelve 422 con código MUTATION_TARGETS_IMMUTABLE_FIELD. La UI no lo deja ni intentar; la regla vive a nivel command handler, no a nivel formulario.
Alcance del MVP — qué funciona y qué no
Funciona end-to-end
- ✓ Login + RBAC (5 roles)
- ✓ Registro de entidades con fuzzy-match anti-duplicados
- ✓ Vista cross-contrato de entidades (ENTY-09)
- ✓ Ciclo de contrato: draft → review → pending_approval → active
- ✓ Aprobación multi-firma con matriz configurable
- ✓ Inmutables enforzados a command handler (no solo UI)
- ✓ Event log append-only con audit completo
- ✓ Retención 5 años garantizada por diseño
- ✓ Branding SAF5 white-label
Placeholder · próximas fases
- ○ Fase 2 — OCR + extracción AI de contratos escaneados
- ○ Fase 2 — Bandeja de revisión con split PDF + JSON
- ○ Fase 3 — Obligaciones con 4 state machines
- ○ Fase 3 — Alertas por email
- ○ Fase 4 — Adendas como sub-aggregates
- ○ Fase 4 — Agente NL conversacional
- ○ Post-v1 — Beneficial ownership full UI (CNBS)
- ○ Post-v1 — KYC flow estructurado (CNBS)
- ○ Post-v1 — Integración bidireccional SAF5
El schema de las próximas fases ya está en la BD (partitioning, crypto-shredding, beneficial ownership, KYC records) — son decisiones no retrofitables que shipearon en Fase 0. Lo que viene en las fases siguientes es la UI + pipeline + lógica de negocio encima del schema ya listo.
Arquitectura en breve
Portal (esto que está viendo) nunca toca Postgres directo — siempre pasa por el core API.
Core API con TLS automático por Let's Encrypt. Event sourcing sobre Postgres 16 self-hosted con particionado mensual. Binarios en MinIO S3-compatible con SSE encryption.
Pipeline de extracción en workflows auditables (Fase 2). OCR self-hosted en container con lazy-load para no tener el peso corriendo 24/7.
Cumplimiento: CNBS Circular 007/2017 como instrumento regulatorio primario. 8 invariantes del sistema enforzadas por código, no por disciplina del usuario. Stack entero portable a on-prem si el banco lo pide.
Feedback
Cualquier observación — bugs, gaps de UX, desalineaciones con el flujo que el banco conoce, features que faltan para que el oficial de cuenta lo adopte en su día a día — son bienvenidas. Lo que encuentre acá es barato de cambiar; encontrarlo después del piloto con el banco es caro.