Développeurs

Formation VR

Référence — Formation VR

Formation VR est le module de simulations de formation en réalité virtuelle. Il combine une application Unity (casque, avec version bureau) et un serveur compagnon (/vr) qui gère les salons, historise les sessions et sert l'assistant IA.

  • Serveur — prod : https://vr.puwapi.com · dev : port 6400
  • Nature : serveur Node/TS + PostgreSQL (puwapi_vr) — et non .NET comme la plupart des modules.
  • Gating : vrEnterprise uniquement (sur devis).

Authentification

Toutes les routes (hors /health) et le WebSocket exigent un JWT Identity Hub (Authorization: Bearer … ; ?token= accepté sur le WebSocket) et le module vr à l'abonnement. Le tenant est toujours extrait du token, jamais du corps.

Routes — gestion (le hub est l'autorité)

MéthodeRouteRôle
GET/healthétat + disponibilité de l'assistant (public)
GET · POST/roomslister · créer un salon configuré
GET · PATCH · DELETE/rooms/:iddétail · éditer · supprimer
POST/rooms/:id/open · /rooms/:id/closeouvrir / fermer (cycle de vie)
GET · POST/rooms/:id/participantslister · affecter un participant
DELETE/rooms/:id/participants/:userIdretirer un participant
GET/rooms/:id/liveprésence live + snapshot de session
GET/reports/overview · /reports/sessionsreporting agrégé (tenant)
GET/rooms/:id/sessions · /sessions/:idhistorique / détail + événements

Routes — runtime (le casque est exécutant)

MéthodeRouteRôle
GET/runtime/roomssalons ouverts affectés à l'utilisateur
POST/rooms/:id/hosthéberger un salon ouvert {address, port}{room, sessionId}
POST/rooms/:id/heartbeatprésence {displayName, currentStep, isHost} (~20 s, TTL 60 s)
POST/rooms/:id/leavequitter (le départ de l'hôte clôt la session)
POST/sessions/:id/telemetryingestion d'événements {events:[{userId?, type, label, detail}]}
WS/assistantsession assistant IA (streaming + actions)

Le protocole du WebSocket et le cycle de vie détaillé sont décrits dans Formation VR — salons, sessions & assistant IA.

Intégration avec la couche IA

L'assistant VR n'appelle pas un fournisseur d'IA directement : il passe par la surface interne du module IA.

App Unity ⇄ Serveur /vr ──POST /api/ai/internal/infer──► IA
                          X-Internal-Secret, tenantId au corps
  • Configuration : IA_BASE_URL + AI_INTERNAL_SECRET (⚠️ le même secret que côté module IA).
  • Repli : si le pont IA n'est pas configuré, le serveur retombe sur un appel direct historique (streaming + outils). Le chemin par le pont renvoie un bloc unique (pas de streaming ni d'outils dans cette version).

Identité & révocation

Comme le reste de la plateforme, le serveur VR s'appuie sur l'identité partagée (JWT_SECRET_KEY, révocation via le Redis plateforme REDIS_URL). Sa vérification de révocation est toutefois isolée (limite assumée, VR étant en Node).

Positionnement

La Formation VR s'adresse aux grandes organisations ayant des besoins de formation immersive (gestes techniques, sécurité, accueil). Elle se vend en Enterprise, sur devis, avec accompagnement.

#api #vr