Aller au contenu principal

API PlayLoop Devices

Objectif

Gérer les devices PlayLoop côté admin et permettre aux players de récupérer leur configuration via authentification dédiée.

Périmètre

Création, liste, révocation, authentification device, ping et accès à la playlist active.

Acteurs/applications consommatrices

  • Interface PlayLoop admin.
  • Player/device PlayLoop.
  • API Laravel.

Authentification requise

  • Routes device : identify.app + device.token.
  • Routes admin : identify.app + auth:sanctum.
  • X-App-Source: playloop attendu par le module.

Permissions/RBAC

  • Admin PlayLoop limité aux acteurs/devices qu’il possède ou gère.
  • Token device limité à la lecture de configuration et au ping.
  • Aucun droit d’administration via token device.

Endpoints actuels visibles si confirmés

MéthodeRouteStatut
GET/api/v1/playloop/device/playlistConfirmé, token device.
POST/api/v1/playloop/device/pingConfirmé, token device.
GET/api/v1/playloop/acteurs/{id}/devicesConfirmé, admin.
POST/api/v1/playloop/acteurs/{id}/devicesConfirmé, admin.
DELETE/api/v1/playloop/devices/{id}/revokeConfirmé, admin.

Endpoints cibles proposés si utile

  • PATCH /api/v1/playloop/devices/{id} pour mise à jour de nom/statut, non confirmé.
  • POST /api/v1/playloop/devices/{id}/rotate-token, non confirmé.

Exemple de requête

GET /api/v1/playloop/device/playlist
X-App-Source: playloop
Authorization: Bearer <token-opaque>

Exemple de réponse succès

{
"data": {
"device_id": "device-id",
"playlist": {
"id": "playlist-id",
"items": []
}
}
}

Exemple d’erreur

{
"error": "invalid_device_token",
"message": "Le device n’est pas autorisé."
}

Pagination si applicable

Applicable à la liste admin des devices.

Rate limiting si applicable

Recommandé sur ping, récupération playlist et création device.

Audit/logs si applicable

Obligatoire pour création, révocation, rotation éventuelle et erreurs device répétées.

Sécurité

  • Token opaque révocable.
  • Ne pas exposer les secrets device dans les réponses admin après création.
  • Playlist filtrée par périmètre device.

État actuel vs cible

SujetÉtat actuelCible
Device tokenMiddleware confirmé.Format header et rotation documentés.
Admin devicesRoutes confirmées.Gestion complète statut/rotation.

Points à confirmer

  • Header token device : Authorization: Bearer <token-opaque> confirmé via $request->bearerToken() dans DeviceTokenMiddleware.
  • Procédure d’appairage.
  • Rotation et expiration des tokens.
  • Gestion offline.