Ce guide décrit le fonctionnement interne des communications API du portail et la gestion de haut niveau des structures.
HOWTO : Gérer les comptes de référence de groupe
- Administrateurs globaux : Ont la possibilité d'ajouter des comptes avec le rôle "Administrateur" ou "AdminCLI". Ils peuvent également attribuer plusieurs codes clients séparés par des virgules dans le champ code (ex: `CLI001, CLI002`).
- Double Authentification 2FA : Lorsqu'un e-mail est renseigné, le portail intercepte la demande et envoie un courriel SMTP2Go contenant un lien de validation unique. Si aucun email n'est renseigné, le 2FA est désactivé (utile pour les comptes de test ou les API de diagnostic).
Fonctionnement Interne et Flux des API
Le backend FastAPI expose plusieurs endpoints REST sécurisés par JWT. Voici les structures de requêtes principales utilisées par le portail :
1. Authentification et Génération de Token
Endpoint : POST /api/auth/login
Permet à un utilisateur de s'authentifier. Il doit spécifier la structure ciblée (AS, MAE ou SAE) pour charger la base SQLite correspondante.
// Requête entrante (JSON)
{
"username": "democlient",
"password": "clientPassword123",
"structure": "SAE"
}
// Réponse en cas de succès (sans 2FA)
{
"status": "success",
"access_token": "eyJhbGciOiJIUzI1NiIsIn...",
"token_type": "bearer",
"user": {
"username": "democlient",
"role": "customer",
"customer_code": "CLI001",
"customer_name": "Client Demo SARL",
"structure": "SAE"
}
}
2. Récupération des Interventions Filtres
Endpoint : GET /api/interventions
Renvoie la liste des interventions du cache SQLite local après avoir appliqué une synchronisation différentielle en tâche de fond. Le jeton JWT et l'en-tête de structure filtrent les lignes.
// En-têtes HTTP requis
Authorization: Bearer eyJhbGciOiJIUzI1NiIsIn...
X-Structure: SAE
// Réponse JSON (Liste filtrée)
[
{
"id": "INT-2026-0498",
"customer_code": "CLI001",
"site_name": "Résidence Les Pins",
"site_address": "12 Rue des Fleurs",
"site_city": "Mérignac",
"type": "Entretien Annuel",
"scheduled_date": "2026-06-28",
"technician": "Martin Paul",
"status": "COMPLETED",
"has_report": 1
}
]
3. Récupération du Rapport d'Intervention PDF
Endpoint : GET /api/interventions/{id}/report
Récupère le compte-rendu signé au format PDF. Le backend fait office de proxy sécurisé : il appelle l'API de rendu sur /events/{id}/render, télécharge le flux binaire, et le retransmet en streaming au navigateur avec le type MIME application/pdf.
// Appel HTTP du navigateur
GET /api/interventions/INT-2026-0498/report HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsIn...
X-Structure: SAE
// Réponse HTTP du backend
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: attachment; filename="report_INT-2026-0498.pdf"
[Données binaires PDF du rapport officiel...]