Files
system-docs/v4-archive/alfred/README.md
2025-12-24 17:28:34 +00:00

3.2 KiB

ALFRED

Estado

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

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

# 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

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