API Chat
Objectif
Gérer les messages, lectures, éditions et suppressions dans des rooms de chat.
Périmètre
Messages par room, envoi, read receipts, édition et suppression.
Applications consommatrices
- DMV.
- AssoSuite.
- Mairie ou backoffice si usage confirmé.
- Toute app autorisée, le module est décrit comme agnostique de l’application.
Authentification requise
Toutes les routes visibles utilisent identify.app + auth:sanctum.
Permissions/RBAC
- L’utilisateur doit appartenir ou avoir accès à la room.
- Les droits d’édition/suppression doivent être vérifiés côté Laravel.
- Les données chat sont sensibles.
Endpoints confirmés visibles
| Méthode | Route | Auth | Notes |
|---|---|---|---|
GET | /api/v1/chat/rooms/{roomId}/messages | auth:sanctum | Liste messages. |
POST | /api/v1/chat/rooms/{roomId}/messages | auth:sanctum | Envoi message. |
POST | /api/v1/chat/rooms/{roomId}/read | auth:sanctum | Marquer comme lu. |
PATCH | /api/v1/chat/messages/{messageId} | auth:sanctum | Éditer message. |
DELETE | /api/v1/chat/messages/{messageId} | auth:sanctum | Supprimer message. |
Endpoints cibles si nécessaire
- Création/liste des rooms à confirmer si le module doit exposer cette gestion.
- Pièces jointes chat à confirmer.
Exemples génériques de requête/réponse
POST /api/v1/chat/rooms/room-id/messages
Authorization: Bearer <token>
X-App-Source: dmv
Content-Type: application/json
{
"content": "Bonjour"
}
{
"message": {
"id": "message-id",
"room_id": "room-id",
"content": "Bonjour",
"created_at": "2026-05-10T10:00:00Z"
}
}
Erreurs principales
{
"error": "chat_access_denied",
"message": "Vous n’avez pas accès à cette conversation."
}
Audit/logs si applicable
- Suppressions, éditions et signalements éventuels doivent être auditables.
- Ne pas logger le contenu complet des messages sans nécessité stricte.
Sécurité
- Les messages sont des données sensibles.
- Accès room obligatoire côté backend.
- Éviter l’exposition des messages à l’IA sans base légale et filtrage.
- Prévoir politique de rétention et suppression.
État actuel vs cible
| Sujet | État actuel | Cible |
|---|---|---|
| Messages | Routes confirmées. | Contrat room/membres/rétention clarifié. |
| Rooms | Routes de création non visibles. | Gestion room à documenter si livrée. |
| Read receipts | Route confirmée. | Modèle lu/non lu stabilisé. |
Points à confirmer
- Modèle de room et participants.
- Pagination messages.
- Rétention et export RGPD.
- Modération/signalement chat.