Volver a la wiki

Hito B · Honestidad de Adapters Signage (push real vs monitor-only)

Resumen

Segunda iniciativa del Plan Hardening post-Máster. Declara honestamente qué vendors de digital signage pueden enviar contenido a través de una API REST pública integrable, frente a aquellos que solo se monitorizan (SNMP) y controlan (display protocols), pero cuyo contenido se gestiona por su propio portal.

Hasta esta sesión (s96), el catálogo de adapters decía soportar push de contenido en los 12 vendors, pero solo 4 lo hacían de verdad. Los otros 8 resolvían a un fallback silencioso que reportaba éxito pero el contenido se perdía (Regla 13 “no fakes”).

Cambios principales

Nuevos Adapters con Push Real

Se implementan 3 adapters con integración de push de contenido real contra APIs REST públicas:

  1. Yodeck (signage/services/adapters/yodeck.py)

    • API: https://api.yodeck.com/v1
    • Auth: Token (header Authorization: Token <api_token>)
    • Push: POST /media/ (formulario multipart)
    • Endpoints: /monitors/, /playlists/, /schedules/, /proof-of-play/
  2. Signagelive (signage/services/adapters/signagelive.py)

    • API: https://api.signagelive.com/v1
    • Auth: OAuth (POST /token → Bearer token)
    • Push: POST /media (FormData con file + name)
    • Endpoints: /players, /media, /playlists, /schedules, /proof-of-play
  3. IAdea (signage/services/adapters/iadea.py)

    • API: http://<ip>:8080/v2 (local)
    • Auth: Token (GET param ?access_token=...)
    • Push: PUT /user-data/<filename> (raw binary)
    • Endpoints: /app/info, /app/start, /app/screenshot, /system/reboot

⚠ Nota crítica: Ninguno de los 3 adapters ha sido verificado contra hardware real. Se han construido siguiendo la documentación oficial de cada fabricante y validados con tests automáticos (mocks de aiohttp), pero requieren ajuste fino al probar en un equipo real.

Vendors marcados como Monitor-Only

Se marca honestamente como push_content: False y content_push_method: 'none' cinco vendors que no exponen una API REST pública de push de contenido:

Estos 5 conservan toda su funcionalidad de monitorización (SNMP) y control (PJLink/MDC/LG/SICP/CIP); solo dejan de aparentar un push que nunca ocurría.

Cambios en Registry

signage/services/adapters/registry.py:

Cambios en API

signage/api/players.py, endpoint list_adapters:

signage/api/schemas.py, VendorAdapterOut:

Migration

signage/migrations/0011_honest_monitor_only_adapters.py:

Tests

tests/signage/test_adapters.py (16 nuevos tests):

Impacto al usuario

Vías futuras

Véase también

Subir