Implementar MARGARET - Log de entrada CORP

- app.py: API Flask con endpoints /health, /ingest, /query, /list
- Dockerfile y docker-compose.yml para despliegue
- init.sql para crear tabla margaret_log
- Autenticacion via X-Auth-Key (h_instancia)
- Almacenamiento en R2 y PostgreSQL

Desplegado en CORP (92.112.181.188:5051)
This commit is contained in:
ARCHITECT
2025-12-24 09:31:46 +00:00
parent cad1163cd8
commit 1c3eace6bc
8 changed files with 391 additions and 28 deletions

View File

@@ -1,7 +1,6 @@
# MARGARET
![Estado](https://img.shields.io/badge/Estado-PLANIFICADO-yellow)
![Estado](https://img.shields.io/badge/Estado-IMPLEMENTADO-brightgreen)
**Log de entrada CORP - Sistema TZZR**
@@ -9,46 +8,72 @@
Secretaria de entrada para CORP (servidor empresarial). Variante de CLARA con funcionalidades adicionales.
## Posición en el Flujo
## Posicion en el Flujo
```
PACKET (App) ──► MARGARET ──► MASON ──► FELDMAN
──► R2 (archivos)
PACKET (App) --> MARGARET --> MASON --> FELDMAN
|
--> R2 (archivos)
```
## Comparación
## Endpoints
| Metodo | Ruta | Descripcion |
|--------|------|-------------|
| GET | `/health` | Estado del servicio |
| POST | `/ingest` | Recibir contenedor |
| GET | `/query/<h_entrada>` | Consultar por hash |
| GET | `/list` | Listar entradas |
## Autenticacion
Todas las rutas (excepto `/health`) requieren:
```
X-Auth-Key: {h_instancia}
```
## Despliegue
```bash
# En CORP
cd /opt/margaret
cp .env.example .env
# Editar .env con credenciales
docker compose up -d
```
## Configuracion
Ver `.env.example` para variables requeridas:
- `H_INSTANCIA`: Hash unico de CORP
- `DB_*`: Credenciales PostgreSQL
- `R2_*`: Credenciales Cloudflare R2
## Base de Datos
Ejecutar `init.sql` en PostgreSQL:
```bash
sudo -u postgres psql -d corp -f init.sql
```
## Comparacion
| Aspecto | CLARA (DECK) | MARGARET (CORP) |
|---------|--------------|-----------------|
| Servidor | Personal | Empresarial |
| Log | Inmutable | Inmutable |
| Extras | - | + NOTARIO (certificación) |
| Puerto | 5051 | 5051 |
| Bucket R2 | deck | corp |
## Función
## Funcion
1. Recibe contenedor de PACKET
2. Envía archivos a R2
3. Registra metadata + ubicación R2
4. **NO añade información**
2. Envia archivos a R2
3. Registra metadata + ubicacion R2
4. **NO agrega informacion**
5. **NO procesa**
6. **NO modifica**
## Identificador
```
h_instancia = SHA-256(seed único de CORP)
```
Mismo hash para:
- Autenticación (`X-Auth-Key`)
- Biblioteca privada
- Prefijo R2
## Arquitectura
Ver documentación completa en [contratos-comunes/architecture](https://git.tzzr.me/tzzr/contratos-comunes/src/branch/main/architecture/01-clara-margaret.md)
---
*Componente del sistema TZZR*
*Componente del sistema TZZR - Implementado 2025-12-24*