# Inventaire des services tiers (06/08/2026)

Établi par inspection du `.env` de production, du `composer.json` et du code front.
Objectif : savoir quels comptes récupérer, lesquels renouveler, lesquels ignorer.

---

## Réellement utilisés

| Service | Rôle | Identifiants observés | Appartenance probable |
|---|---|---|---|
| **Brevo** | Envoi des emails (relais SMTP) | Hôte `smtp-relay.brevo.com`, expéditeur `enguerran@voltairedigital.com` | **À toi** — ton nom, ton domaine |
| **Pusher** | Temps réel du chat (actif en prod) | App `1982744`, cluster **`ap2`** (Mumbai) | **Probablement à eux** — un cluster asiatique n'a aucune justification pour une plateforme française |
| **Sentry** | Remontée d'erreurs du front | Organisation `o4509547224104960`, région **DE**, projet `4510312056946768` | À vérifier |
| **Vimeo** | Hébergement des vidéos de formation | 27 références dans le code | À vérifier — **le contenu pédagogique y est stocké** |
| **ZegoCloud** | Visioconférence | Clé secrète en clair dans le bundle front | À supprimer (décision F15) |
| **CKEditor 5** | Éditeur de texte enrichi, **uniquement pour la description d'un cours** | `licenseKey: 'GPL'` déclaré, build libre `ckeditor5-build-classic` | Aucun compte, aucune licence à acquérir |

## Présents mais non utilisés

| Service | Constat |
|---|---|
| **AWS / S3** | Variables présentes mais `AWS_BUCKET` **vide** et `FILESYSTEM_DISK=local`. Seule référence : `config/filesystems.php`, c'est-à-dire le fichier livré par défaut avec Laravel. **Rien n'est stocké sur AWS** — ce sont des variables d'exemple jamais configurées. Aucun compte à récupérer. |
| **Stripe** | Clés en **mode test** (`pk_test_` / `sk_test_`). Aucun paiement réel possible. Enjeu faible. |
| **Mailjet** | Le paquet `mailjet/laravel-mailjet` est installé, mais l'envoi passe par Brevo en SMTP standard. Dépendance résiduelle. |
| **Redis / Memcached** | Variables présentes, mais `CACHE_STORE=database` et `SESSION_DRIVER=database`. Non utilisés. |
| **YouTube / Loom / Wistia** | Supportés comme sources vidéo, sans compte ni clé — de simples URL intégrées. |

---

## Points d'attention

### Pusher — le seul dont la perte serait visible

C'est le service en usage réel dont l'appartenance est la plus douteuse. Le cluster `ap2`
correspond à Mumbai, cohérent avec l'équipe qui a développé l'application (le dernier commit
déployé est signé `RupakRigic`) et non avec une plateforme française. Si le compte est à eux, la
fin de la relation coupe **la messagerie temps réel de la plateforme**.

À vérifier en priorité. Reconstituer un compte Pusher est simple et peu coûteux, mais mieux vaut
le prévoir que le découvrir.

### Vimeo — l'enjeu le plus lourd

Les vidéos de formation sont hébergées chez Vimeo, pas sur le serveur. Ce n'est pas une clé d'API
qu'on remplace : c'est **le contenu pédagogique lui-même**. Si le compte n'est pas à toi, il faut
le récupérer ou rapatrier les vidéos avant toute rupture. À traiter avec la même attention que le
compte OVH.

### CKEditor 5 — aucun risque contractuel, mais une configuration trompeuse

**Correction d'une alerte que j'avais émise à tort.** Vérification faite sur le bundle réellement
déployé :

| Élément | Constat |
|---|---|
| Clé de licence | `licenseKey: 'GPL'` est bien déclarée — c'est le mode open-source officiel de CKEditor |
| Éditeur chargé | `@ckeditor/ckeditor5-build-classic` — la build **libre** |
| Plugins premium dans le bundle livré | **Aucun** : 0 classe d'implémentation pour `exportPdf`, `exportWord`, `importWord`, `formatPainter`, `tableOfContents` (à comparer au témoin `bold`, bien présent) |
| Références au paquet premium dans le bundle | **0** |

Il n'y a donc **rien à payer et rien à régulariser**.

En revanche, la barre d'outils configurée liste **45 boutons**, dont une trentaine correspondent à
des fonctions premium absentes du bundle. CKEditor les ignore silencieusement — elles n'apparaissent
simplement pas à l'écran, en laissant des avertissements dans la console du navigateur. La
configuration a manifestement été copiée depuis une démonstration officielle sans être adaptée.

Conséquence concrète : **l'éditeur est bien plus pauvre que ne le laisse croire sa configuration**.
Restent les fonctions de la build classique (gras, italique, titres, listes, liens, images,
tableaux, citations, média). Absents : couleurs, tailles et polices de caractères, alignement,
soulignement, rechercher-remplacer, édition HTML, caractères spéciaux…

Deux nettoyages faciles, sans effet de bord :
1. Aligner la barre d'outils sur ce qui existe réellement (ou charger les plugins libres
   manquants : `alignment`, `fontColor`, `findAndReplace`, `underline`… tous gratuits).
2. Retirer les dépendances `ckeditor5` et `ckeditor5-premium-features` (version 47), tirées
   **uniquement pour leur feuille de style** alors que l'éditeur est en version 41 — un décalage
   de version qui alourdit la build sans rien apporter.

### AWS — réponse claire : nulle part

Les variables `AWS_*` du `.env` sont celles fournies par défaut dans le fichier d'exemple de
Laravel. Le disque de stockage est `local`, le bucket est vide, et aucune ligne de code
applicatif n'appelle S3. Les fichiers (certificats, ressources de cours, médias) sont stockés
**sur le disque du serveur**, dans `storage/app/public`.

C'est d'ailleurs un point à retenir pour les sauvegardes : le contenu téléversé n'existe qu'à un
seul endroit, sur la machine.

---

## Ce qu'il reste à vérifier, par ordre d'importance

1. **Pusher** — qui détient le compte ? Le chat temps réel en dépend. **Seul point réellement ouvert.**
2. **Brevo** — confirmation de forme, l'expéditeur porte déjà ton nom.
3. **Stripe** — seulement si les abonnements ont vocation à servir un jour.

**Résolus le 06/08** : Vimeo et Sentry sont sous contrôle (confirmé par Enguerran).
CKEditor ne nécessite ni compte ni licence. AWS n'est pas utilisé.
