- 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
123 lines
3.9 KiB
Markdown
123 lines
3.9 KiB
Markdown
# Contable
|
|
|
|
**Nombre:** Feldman
|
|
**Estado:** Implementado
|
|
|
|
---
|
|
|
|
## Descripción
|
|
|
|
Registro final definitivo e inmutable. Representa el estado válido y oficial de cada operación. Aplica principios contables de inmutabilidad.
|
|
|
|
---
|
|
|
|
## Características
|
|
|
|
| Característica | Valor |
|
|
|----------------|-------|
|
|
| Mutabilidad | **Inmutable** |
|
|
| Persistencia | Permanente |
|
|
| Eliminación | Prohibida bajo ningún concepto |
|
|
|
|
---
|
|
|
|
## Estructura Interna
|
|
|
|
Feldman es una **unidad conceptual** que contiene dos tablas:
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ FELDMAN │
|
|
├─────────────────────────────────────────────────────────────────┤
|
|
│ │
|
|
│ ┌─────────────────────┐ ┌─────────────────────┐ │
|
|
│ │ Cola de Validación │ → │ Registro Final │ │
|
|
│ │ (espera bloques) │ │ (inmutable) │ │
|
|
│ └─────────────────────┘ └─────────────────────┘ │
|
|
│ │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
**Aclaración:** La división es **técnica** (tiempo entre validaciones), no conceptual.
|
|
|
|
---
|
|
|
|
## Validación por Bloques
|
|
|
|
| Aspecto | Valor |
|
|
|---------|-------|
|
|
| Frecuencia | Periódica |
|
|
| Tipo | Por bloques, no transacción a transacción |
|
|
| Reglas | M-001, M-002, M-003 |
|
|
|
|
### Reglas de Validación
|
|
|
|
| Regla | Nombre | Descripción |
|
|
|-------|--------|-------------|
|
|
| M-001 | Hash único | h_bloque/h_milestone no existe previamente |
|
|
| M-002 | Encadenamiento | hash_previo apunta a bloque existente |
|
|
| M-003 | Integridad | hash_contenido = SHA-256(contenido) |
|
|
|
|
---
|
|
|
|
## Encadenamiento
|
|
|
|
```
|
|
Bloque N-1 Bloque N
|
|
┌──────────────────┐ ┌──────────────────┐
|
|
│ h_bloque: abc123 │ ──────► │ hash_previo: │
|
|
│ hash_contenido: │ │ abc123 │
|
|
│ def456 │ │ h_bloque: ghi789 │
|
|
│ secuencia: 1 │ │ secuencia: 2 │
|
|
└──────────────────┘ └──────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Schema Cola
|
|
|
|
```sql
|
|
CREATE TABLE feldman_cola (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
tipo VARCHAR(50) NOT NULL,
|
|
h_entrada VARCHAR(64) NOT NULL,
|
|
contenido JSONB NOT NULL,
|
|
prioridad INTEGER DEFAULT 0,
|
|
estado VARCHAR(20) DEFAULT 'pendiente',
|
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
processed_at TIMESTAMPTZ
|
|
);
|
|
```
|
|
|
|
---
|
|
|
|
## Schema Registro Final
|
|
|
|
```sql
|
|
CREATE TABLE bloques (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
h_bloque VARCHAR(64) UNIQUE NOT NULL,
|
|
h_instancia VARCHAR(64) NOT NULL,
|
|
secuencia BIGINT NOT NULL,
|
|
hash_previo VARCHAR(64),
|
|
hash_contenido VARCHAR(64) NOT NULL,
|
|
tipo_bloque VARCHAR(50) NOT NULL,
|
|
contenido JSONB NOT NULL,
|
|
metadata JSONB,
|
|
estado VARCHAR(20) DEFAULT 'consolidado',
|
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
validated_at TIMESTAMPTZ,
|
|
UNIQUE (h_instancia, secuencia)
|
|
);
|
|
```
|
|
|
|
---
|
|
|
|
## Trazabilidad
|
|
|
|
Cualquier registro en Feldman puede rastrearse hasta Secretaría:
|
|
|
|
```
|
|
Bloque (Feldman) → h_entrada → Secretaría (Clara/Margaret)
|
|
```
|