Collabora Online¶
Maarch Courrier expose trois callbacks WOPI à Collabora Online. Ces routes sont exclues de l'authentification REST globale : leur accès repose exclusivement sur la query string access_token.
Le jeton est un JWT signé. Il doit contenir resId, userId, type et wopiKey, ce dernier doit correspondre à {id}. Le JWT est opaque pour l'intégrateur et ne doit pas être journalisé.
Pour l'installation, consultez le guide Collabora Online.
Lire les informations WOPI d'un fichier¶
| Paramètre | Emplacement | Type | Description |
|---|---|---|---|
id |
chemin | integer | Clé WOPI liée au jeton |
access_token |
query string | string | JWT émis par Maarch Courrier |
La réponse 200 OK est conforme à CheckFileInfo :
{
"BaseFileName": "document.odt",
"Size": 12345,
"UserCanNotWriteRelative": true,
"UserCanWrite": true,
"DisablePrint": false,
"HideSaveOption": true,
"UserFriendlyName": "Utilisateur exemple",
"OwnerId": 17,
"UserId": 17,
"LastModifiedTime": "2026-08-21T10:00:00+0000"
}
Télécharger le contenu WOPI¶
Le fichier binaire est retourné avec son Content-Type détecté et un header Content-Disposition. Pour une création à partir d'un modèle, les données du JWT sont fusionnées avant le retour. Pour une modification, le contrôleur vérifie le périmètre et l'empreinte du document.
Enregistrer le contenu WOPI¶
Le body est le contenu binaire complet produit par Collabora. Après validation du jeton et du document, le fichier est enregistré dans la zone temporaire de l'utilisateur. Le succès retourne 200 OK sans body.
Erreurs communes¶
| Code | Condition confirmée |
|---|---|
400 Bad Request |
Jeton absent, document invalide, docserver absent, empreinte incohérente ou écriture temporaire impossible |
401 Unauthorized |
JWT invalide, incomplet ou wopiKey différent de {id} |
403 Forbidden |
Document hors périmètre pour une modification |
404 Not Found |
Fichier absent du docserver |
Routes privées non publiées¶
Les routes suivantes sont des échanges internes entre l'interface Maarch Courrier et son contrôleur Collabora. Elles ne constituent pas une API intégrateur :
| Route | Usage |
|---|---|
POST /rest/collaboraOnline/configuration |
Construction de la session d'édition |
GET /rest/collaboraOnline/available |
Détection du service |
POST /rest/collaboraOnline/file |
Lecture d'un fichier temporaire |
DELETE /rest/collaboraOnline/file |
Suppression d'un fichier temporaire |
POST /rest/collaboraOnline/encodedFile |
Enregistrement d'un document encodé |