Gérer les Licences

Dans la dernière version de l'API Pulse, le champ de licence a été rendu plus flexible pour permettre la gestion des permissions non seulement pour Pulse Web, mais aussi pour des applications externes (comme Convrgence, GraffWall, etc.) connectées à l'écosystème.

Structure de l'objet Licence

L'objet license permet désormais de définir des quotas, des fonctionnalités (features) et d'associer la licence à une application spécifique via applicationId.

Voici la structure de l'interface :

export interface DeviceLicense {
  level?: 'free' | 'premium' | 'pro';
  expirationDate: Date | null;
  alertDate?: Date | null;
  applicationId?: string; // Identifiant de l'application (ex: 'myApp')
  planLabel?: string; // Nom lisible du forfait (ex: 'Event 2025 Pack')
  licenseKey?: string; // Clé unique
  features?: string[]; // Liste des fonctionnalités débloquées
  quotas?: Record<string, number>; // Limites (stockage, sièges, etc.)
  status?: 'active' | 'suspended' | 'revoked' | 'expired' | 'payment-failed';
  startDate?: Date;
  metadata?: any;
}

Mettre à jour une licence via l'API

L'API favorise désormais l'utilisation du verbe PATCH pour les mises à jour partielles.

1. Mise à jour unitaire

Pour attribuer ou mettre à jour une licence sur un appareil spécifique, utilisez la route PATCH /devices/:deviceId.

Route Legacy : PUT /devices/:deviceId est toujours supportée pour la rétrocompatibilité.

Exemple de Payload JSON (Unitaire)

Voici un exemple complet montrant comment attribuer une licence "Premium" pour l'application myApp :

2. Mise à jour en masse (Bulk Update)

Pour mettre à jour simultanément les licences de plusieurs appareils, utilisez la route PATCH /devices.

Cette route nécessite un tableau devicesId contenant les identifiants des appareils cibles.

Exemple de Payload JSON (Masse)

Comportement par défaut

Le champ applicationId est optionnel. Si vous ne le fournissez pas dans votre requête, le système l'assignera automatiquement à la valeur par défaut : "pulse".

Cela assure la rétrocompatibilité avec les systèmes existants qui gèrent uniquement les licences Pulse Web.

Cas d'usage

Cette nouvelle structure est idéale pour :

  • Applications tierces : Permettre à des apps comme votre app de vérifier si un appareil a le droit d'accéder à des fonctionnalités VR ou hors ligne.

  • Forfaits événementiels : Créer des licences temporaires (expirationDate) avec un planLabel spécifique pour un événement.

  • Gestion de flotte mixte : Avoir sur le même serveur MDM des appareils dédiés à Pulse Web et d'autres dédiés à des usages spécifiques (myApp), chacun avec sa propre gestion de licence.

Mis à jour