Utilisation de l'API d'Etherpad

Cette page recense quelques cas d’utilisations de l’API d’Etherpad. Dans la mesure où l’API est sujette aux changements, on se référera à la documentation officielle.

L’API utilise uniquement des requêtes GET, ce qui signifie que les paramètres, y compris critiques, sont passés en clair dans l’URL.

Pour cette raison, il est formellement interdit d’utiliser l’API depuis l’extérieur de l’infrastructure tant que ce problème n’est pas réglé.

Pour autant, elle reste utile, par exemple pour supprimer des pads. En effet, la base de données étant de type clé-valeur, avec l’ensemble des révisions stockées, ce serait beaucoup trop complexe à faire à la main.

L’API utilise une clé pour se connecter. On peut la récupérer en se rendant dans le conteneur, par exemple :

qduchemi@pica01:~$ docker exec -it etherpad-app bash
node@id:~$ export APIKEY=$(cat /opt/etherpad-lite/APIKEY.txt)

La variable APIKEY est désormais utilisable pour les opérations sur l’API. On la passera systématiquement en paramètre GET, comme valeur du paramètre apikey.

Enfin, on pourra requêter l’URL localhost:8080, puisque l’on est dans le conteneur, et que l’image Docker d’Etherpad expose le port 8080 en interne.

Attention, opération définitive. Elle supprime en particulier l’ensemble des versions accessibles dans le timeslider.

On utilise la route deletePad, et le paramètre padID qui correspond au nom du pad. Exemple :

node@id:~$ curl "localhost:8080/api/1/deletePad?apikey=$APIKEY&padID=<nom du pad à supprimer>"
  • technique/adminserv/etherpad/api.1604871044.txt.gz
  • de qduchemi