- Nueva estructura de carpetas según Skynet v7 - Añadidos schemas SQL completos - Documentación de entidades, componentes e integraciones - Modelo de seguridad actualizado - Infraestructura y operaciones reorganizadas
189 lines
6.8 KiB
Markdown
189 lines
6.8 KiB
Markdown
# Flujos
|
|
|
|
**Versión:** 1.0
|
|
**Estado:** Definición
|
|
|
|
---
|
|
|
|
## Visión General
|
|
|
|
El sistema tiene tres flujos principales según la naturaleza de la información entrante.
|
|
|
|
---
|
|
|
|
## Flujo Estándar (entrada manual)
|
|
|
|
**Condición:** La información no encaja (entrada manual, incidencia, improvisación). Requiere enriquecimiento o validación manual.
|
|
|
|
```
|
|
Secretaría (Clara/Margaret)
|
|
│
|
|
│ registro inmutable
|
|
▼
|
|
Administración (Mason)
|
|
│
|
|
│ enriquecimiento (24h)
|
|
▼
|
|
Contable (Feldman)
|
|
│
|
|
│ consolidación
|
|
▼
|
|
Inmutable
|
|
```
|
|
|
|
---
|
|
|
|
## Flujo de Producción (procesos predefinidos)
|
|
|
|
**Condición:** La información encaja (viene de Producción, proceso predefinido completo). La información ya está completa y estructurada.
|
|
|
|
```
|
|
Producción (Alfred/Jared)
|
|
│
|
|
│ flujo predefinido
|
|
▼
|
|
Secretaría (Clara/Margaret)
|
|
│
|
|
│ registro inmutable
|
|
▼
|
|
Contable (Feldman)
|
|
│
|
|
│ consolidación directa
|
|
▼
|
|
Inmutable
|
|
```
|
|
|
|
**Nota:** Este flujo salta Administración porque no hay nada que enriquecer.
|
|
|
|
---
|
|
|
|
## Flujo con Incidencia
|
|
|
|
**Condición:** Durante un flujo de producción, el usuario improvisa o se produce un cambio.
|
|
|
|
**Comportamiento:** La improvisación marca el punto de quiebre. Todo lo anterior registrado se mantiene, pero lo que viene después requiere el paso por Administración.
|
|
|
|
```
|
|
Producción (Alfred/Jared)
|
|
│
|
|
│ flujo predefinido
|
|
▼
|
|
Secretaría (Clara/Margaret)
|
|
│
|
|
│ ⚠️ incidencia detectada
|
|
▼
|
|
Administración (Mason)
|
|
│
|
|
│ enriquecimiento
|
|
▼
|
|
Contable (Feldman)
|
|
```
|
|
|
|
---
|
|
|
|
## Regla de Decisión
|
|
|
|
| Condición | Flujo |
|
|
|-----------|-------|
|
|
| **Encaja** | Secretaría → Feldman |
|
|
| **No encaja** | Secretaría → Mason → Feldman |
|
|
|
|
---
|
|
|
|
## Diagrama de Decisión
|
|
|
|
```
|
|
┌─────────────────┐
|
|
│ Entrada │
|
|
└────────┬────────┘
|
|
│
|
|
┌────────▼────────┐
|
|
│ ¿Viene de │
|
|
│ Producción? │
|
|
└────────┬────────┘
|
|
│
|
|
┌────────┴────────┐
|
|
│ │
|
|
SÍ NO
|
|
│ │
|
|
┌────────▼────────┐ │
|
|
│ ¿Encaja │ │
|
|
│ completo? │ │
|
|
└────────┬────────┘ │
|
|
│ │
|
|
┌────────┴────────┐ │
|
|
│ │ │
|
|
SÍ NO │
|
|
│ │ │
|
|
▼ ▼ ▼
|
|
┌──────────┐ ┌──────────────────┐
|
|
│ Directo │ │ Mason │
|
|
│ Feldman │ │ (enriquecer) │
|
|
└──────────┘ └──────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Mecanismo de "Encaja"
|
|
|
|
**Pendiente de definir:** Sistema de hashes que determina automáticamente si la información encaja con un flujo predefinido.
|
|
|
|
Concepto propuesto:
|
|
|
|
```python
|
|
def encaja(entrada, flujo_esperado):
|
|
# Comparar estructura de datos
|
|
# Verificar campos requeridos
|
|
# Validar tipos
|
|
return estructura_coincide and campos_completos
|
|
```
|
|
|
|
---
|
|
|
|
## Estados del Flujo
|
|
|
|
| Estado | Ubicación | Descripción |
|
|
|--------|-----------|-------------|
|
|
| **recibido** | Secretaría | Entrada registrada |
|
|
| **en_edicion** | Mason | Usuario enriqueciendo |
|
|
| **listo** | Mason | Preparado para Feldman |
|
|
| **pendiente** | Feldman cola | En espera de consolidación |
|
|
| **consolidado** | Feldman bloques | Registro final inmutable |
|
|
|
|
---
|
|
|
|
## Estructura de Feldman
|
|
|
|
Feldman tiene **dos tablas internas**:
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ FELDMAN │
|
|
├─────────────────────────────────────────────────────────────────┤
|
|
│ │
|
|
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
│ │ COLA (24h configurable) │ │
|
|
│ │ • Registros esperando consolidación │ │
|
|
│ │ • Usuario puede: DEVOLVER a Mason │ │
|
|
│ │ • Si expira → pasa a BLOQUE │ │
|
|
│ └─────────────────────────┬────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ▼ │
|
|
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
│ │ BLOQUES INMUTABLES │ │
|
|
│ │ GÉNESIS ─▶ BLOQUE 1 ─▶ BLOQUE 2 ─▶ ... │ │
|
|
│ │ (hash anterior, merkle root, timestamp) │ │
|
|
│ └─────────────────────────────────────────────────────────┘ │
|
|
│ │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Ventanas Temporales
|
|
|
|
| Etapa | Default | Configurable | Descripción |
|
|
|-------|---------|--------------|-------------|
|
|
| Mason | 24h | ✓ | Tiempo para enriquecer antes de auto-envío |
|
|
| Feldman cola | 24h | ✓ | Tiempo en cola antes de cerrar en bloque |
|