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:
81
README.md
81
README.md
@@ -1,7 +1,6 @@
|
||||
# MARGARET
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
**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*
|
||||
|
||||
Reference in New Issue
Block a user