Archive: System v4 - Estado al 2024-12-24
This commit is contained in:
130
v4-archive/alfred/README.md
Normal file
130
v4-archive/alfred/README.md
Normal file
@@ -0,0 +1,130 @@
|
||||
# ALFRED
|
||||
|
||||

|
||||
|
||||
**Flujos predefinidos lite - Sistema TZZR**
|
||||
|
||||
## Rol
|
||||
|
||||
Flujos predefinidos para DECK (servidor personal). Cadenas de pasos conocidos donde el usuario solo completa datos variables.
|
||||
|
||||
## Posicion en el Flujo
|
||||
|
||||
```
|
||||
ALFRED
|
||||
|
|
||||
Salida esperada?
|
||||
|
|
||||
+------+------+
|
||||
| |
|
||||
SI NO
|
||||
| (incidencia)
|
||||
| |
|
||||
| v
|
||||
| MASON
|
||||
| |
|
||||
v v
|
||||
FELDMAN
|
||||
```
|
||||
|
||||
## Endpoints
|
||||
|
||||
| Metodo | Ruta | Descripcion |
|
||||
|--------|------|-------------|
|
||||
| GET | `/health` | Estado del servicio |
|
||||
| GET | `/flujos` | Listar flujos predefinidos |
|
||||
| POST | `/flujos` | Crear nuevo flujo |
|
||||
| GET | `/flujos/<id>` | Detalle de un flujo |
|
||||
| PUT | `/flujos/<id>` | Actualizar flujo |
|
||||
| DELETE | `/flujos/<id>` | Desactivar flujo (soft delete) |
|
||||
| POST | `/ejecutar/<id>` | Ejecutar un flujo |
|
||||
| GET | `/ejecuciones` | Listar ejecuciones |
|
||||
| GET | `/ejecuciones/<hash>` | Detalle de ejecucion |
|
||||
| GET | `/stats` | Estadisticas |
|
||||
|
||||
## Autenticacion
|
||||
|
||||
Todas las rutas (excepto `/health`) requieren:
|
||||
```
|
||||
X-Auth-Key: {h_instancia}
|
||||
```
|
||||
|
||||
## Crear un Flujo
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:5052/flujos \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Auth-Key: {h_instancia}" \
|
||||
-d '{
|
||||
"nombre": "Rutina Pecho",
|
||||
"descripcion": "Entrenamiento de pecho - Martes",
|
||||
"pasos": [
|
||||
{"ejercicio": "Press banca", "series": 4},
|
||||
{"ejercicio": "Press inclinado", "series": 3}
|
||||
],
|
||||
"campos_variables": ["kg", "reps", "notas"]
|
||||
}'
|
||||
```
|
||||
|
||||
## Ejecutar un Flujo
|
||||
|
||||
```bash
|
||||
# Ejecucion OK -> destino FELDMAN
|
||||
curl -X POST http://localhost:5052/ejecutar/{flujo_id} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Auth-Key: {h_instancia}" \
|
||||
-d '{
|
||||
"datos": {"press_banca": {"kg": 80, "reps": 10}}
|
||||
}'
|
||||
|
||||
# Ejecucion con incidencia -> destino MASON
|
||||
curl -X POST http://localhost:5052/ejecutar/{flujo_id} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Auth-Key: {h_instancia}" \
|
||||
-d '{
|
||||
"datos": {"press_banca": {"kg": 0, "reps": 0}},
|
||||
"incidencia": true,
|
||||
"notas": "Lesion en hombro"
|
||||
}'
|
||||
```
|
||||
|
||||
## Estados de Salida
|
||||
|
||||
| Estado | Descripcion | Destino |
|
||||
|--------|-------------|---------|
|
||||
| ok | Todo segun lo previsto | FELDMAN |
|
||||
| incidencia | Algo no coincide | MASON |
|
||||
|
||||
## Despliegue
|
||||
|
||||
```bash
|
||||
cd /opt/alfred
|
||||
cp .env.example .env
|
||||
# Editar .env con credenciales
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## Configuracion
|
||||
|
||||
Ver `.env.example` para variables requeridas:
|
||||
- `H_INSTANCIA`: Hash unico de DECK
|
||||
- `DB_*`: Credenciales PostgreSQL
|
||||
|
||||
## Base de Datos
|
||||
|
||||
Ejecutar `init.sql` en PostgreSQL o las tablas se crean automaticamente:
|
||||
- `flujos_predefinidos`: Definicion de flujos
|
||||
- `flujo_ejecuciones`: Historial de ejecuciones
|
||||
|
||||
## Comparacion
|
||||
|
||||
| Componente | Servidor | Tipo | Destino si OK |
|
||||
|------------|----------|------|---------------|
|
||||
| CLARA | DECK | Input suelto | MASON |
|
||||
| MARGARET | CORP | Input suelto | MASON |
|
||||
| **ALFRED** | DECK | Flujo predefinido | FELDMAN (directo) |
|
||||
| JARED | CORP | Flujo predefinido | FELDMAN (directo) |
|
||||
|
||||
---
|
||||
|
||||
*Componente del sistema TZZR - Implementado 2025-12-24*
|
||||
Reference in New Issue
Block a user