Dominios de Negocio
Mapa de Dominios
La plataforma Imagy está organizada en dominios de negocio independientes. Cada dominio es un bounded context con su propia base de datos, API, y equipo responsable.
Detalle por Dominio
Identity — Imagy Identity
Estado: ✅ Funcional
Repositorios:imagy-identity-gateway,imagy-identity-management
Base de datos:imagy_identity
| Aspecto | Detalle |
|---|---|
| Propósito | Autenticación, autorización, gestión de tenants y organizaciones |
| Responsabilidades | Login OIDC, sesiones, RBAC, tenant lifecycle, temas, delegated admin |
| Tecnología clave | Keycloak (realm-per-tenant), YARP (reverse proxy), Redis (sesiones) |
| Dependencias | Keycloak (externo) |
| Consumidores | Todos los demás servicios (auth es transversal) |
Capacidades:
- Autenticación SSO (OIDC + PKCE, BFF pattern)
- Gestión de tenants (onboarding, suspensión, configuración)
- Organizaciones dentro de tenants (Keycloak Organizations API)
- Roles y permisos (RBAC con delegated admin cross-tenant)
- Temas visuales por tenant (branding)
- Sesiones seguras (cookies httpOnly, Redis, backchannel logout)
- Rate limiting por tenant y endpoint
ImagFlow — Motor de Flujos
Estado: 📋 En diseño
Repositorio:imagy-flow-engine
Base de datos:imagy_flow
| Aspecto | Detalle |
|---|---|
| Propósito | Orquestar procesos multi-paso de cualquier tipo |
| Responsabilidades | Diseño de flujos, ejecución, proveedores, reglas, notificaciones |
| Tecnología clave | Versionamiento inmutable, Provider Gateway (adapters), RabbitMQ |
| Dependencias | ImagSign (para pasos de firma), ImagID (para reglas con historial) |
| Consumidores | ImagLend (invoca flujos), ImagSign (recibe invocaciones) |
Capacidades:
Modelo de versionamiento:
Tipos de paso soportados:
form— Formulario configurable (campos, validaciones)liveness— Verificación facial (proveedor externo)card_capture— Captura de documento (frente/reverso)signature— Firma digital/electrónica (delega a ImagSign)validation— Validación contra registros (demográfico, listas)custom— Paso genérico extensible
ImagLend — Créditos
Estado: 📋 En diseño
Repositorio:imagy-lending
Base de datos:imagy_lending
| Aspecto | Detalle |
|---|---|
| Propósito | Gestión completa del ciclo de vida de créditos |
| Responsabilidades | Productos, originación, simulación, cartera, cobranza |
| Tecnología clave | Productos configurables, wizard público, integración con Flow y Sign |
| Dependencias | ImagFlow (validación), ImagSign (firma), ImagID (listas, perfil) |
| Consumidores | ImagID (recibe eventos de créditos) |
Capacidades:
Relación con Flow Engine:
El wizard de crédito NO es un flujo de ImagFlow. Es un producto especializado de ImagLend con su propia lógica (simulación financiera, cálculo de tasas, persistencia entre sesiones). Pero puede invocar al Flow Engine para pasos que requieren proveedores externos.
ImagSign — Firma Digital
Estado: 📋 En diseño
Repositorio:imagy-sign
Base de datos:imagy_sign
| Aspecto | Detalle |
|---|---|
| Propósito | Firma de documentos con validez legal |
| Responsabilidades | Firma digital, firma electrónica, gestión de documentos, certificados |
| Tecnología clave | Multi-proveedor (adapter pattern), estampado cronológico |
| Dependencias | Proveedores externos (Firmalo, Uanataca, Certicámara) |
| Consumidores | ImagFlow (como paso), ImagLend (firma de contratos) |
Capacidades:
| Tipo de firma | Descripción | Validez legal |
|---|---|---|
| Firma digital | Con certificado digital emitido por entidad certificadora | Plena (equivalente a firma manuscrita) |
| Firma electrónica simple | Aceptación con checkbox + OTP | Probatoria (según legislación) |
| Firma electrónica avanzada | Biométrica + OTP + geolocalización | Alta (según legislación) |
Modos de operación:
Proveedores configurados por el diseñador del flujo (no automático por país):
| Proveedor | País principal | Tipo |
|---|---|---|
| Firmalo | Ecuador | Firma digital certificada |
| Uanataca | Ecuador, España | Firma digital certificada |
| Certicámara | Colombia | Firma digital certificada |
| (Genérico) | Cualquiera | Firma electrónica simple/avanzada |
ImagID — Subject 360
Estado: 📋 En diseño
Repositorio:imagy-subject
Base de datos:imagy_subject
| Aspecto | Detalle |
|---|---|
| Propósito | Visión unificada de cada persona que interactúa con la plataforma |
| Responsabilidades | Perfil consolidado, historial, dispositivos, listas, scoring, alertas |
| Tecnología clave | Event sourcing (consume eventos de todos), cross-tenant con RLS |
| Dependencias | Ninguna (solo consume eventos) |
| Consumidores | ImagFlow (reglas con historial), ImagLend (verificación de listas) |
Capacidades:
Modelo de datos cross-tenant:
Regla clave: SUBJECT_PROFILE es global (sin RLS) — permite identificar al mismo sujeto en múltiples tenants. Todo lo demás tiene RLS por tenant_id — cada tenant solo ve sus propias interacciones, dispositivos y listas.
ImagGuard — Compliance (futuro)
Estado: 🔮 Futuro
Repositorio:imagy-compliance
Base de datos:imagy_compliance
| Aspecto | Detalle |
|---|---|
| Propósito | Cumplimiento regulatorio automatizado |
| Responsabilidades | KYC, AML, PEP, listas restrictivas |
| Integración | Consume datos de ImagID, provee resultados a ImagFlow (reglas) |
Dependencias entre Dominios
Comunicación Síncrona (HTTP + JWT)
| Origen | Destino | Endpoint | Propósito |
|---|---|---|---|
| ImagLend | ImagFlow | POST /api/v1/executions/trigger | Iniciar flujo de validación |
| ImagFlow | ImagSign | POST /api/v1/signatures/request | Ejecutar firma como paso |
| ImagLend | ImagID | GET /api/v1/subjects/{id}/lists | Verificar listas antes de aprobar |
| ImagFlow | ImagID | GET /api/v1/subjects/{id}/metrics | Datos históricos para reglas |
Comunicación Asíncrona (Eventos)
ImagID es el principal consumidor — recibe eventos de todos los dominios para construir la vista 360 del sujeto.
Ownership y Repositorios
| Dominio | Equipo | Repositorios | BD |
|---|---|---|---|
| Identity | Team Identity | imagy-identity-gateway, imagy-identity-management | imagy_identity |
| Flow | Team Flow | imagy-flow-engine | imagy_flow |
| Lending | Team Lending | imagy-lending | imagy_lending |
| Sign | Team Flow (inicialmente) | imagy-sign | imagy_sign |
| Subject | Team Platform (inicialmente) | imagy-subject | imagy_subject |
| Compliance | TBD | imagy-compliance | imagy_compliance |
| Frontend | Team Platform | imagy-console, imagy-console-public | — |
| Infra | Team Platform | imagy-infra, imagy-shared | — |