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: playloopattendu 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éthode | Route | Statut |
|---|---|---|
GET | /api/v1/playloop/device/playlist | Confirmé, token device. |
POST | /api/v1/playloop/device/ping | Confirmé, token device. |
GET | /api/v1/playloop/acteurs/{id}/devices | Confirmé, admin. |
POST | /api/v1/playloop/acteurs/{id}/devices | Confirmé, admin. |
DELETE | /api/v1/playloop/devices/{id}/revoke | Confirmé, 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 actuel | Cible |
|---|---|---|
| Device token | Middleware confirmé. | Format header et rotation documentés. |
| Admin devices | Routes confirmées. | Gestion complète statut/rotation. |
Points à confirmer
- Header token device :
Authorization: Bearer <token-opaque>confirmé via$request->bearerToken()dansDeviceTokenMiddleware. - Procédure d’appairage.
- Rotation et expiration des tokens.
- Gestion offline.