Aller au contenu

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

GET /rest/wopi/files/{id}?access_token={jwt}
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

GET /rest/wopi/files/{id}/contents?access_token={jwt}

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

POST /rest/wopi/files/{id}/contents?access_token={jwt}
Content-Type: application/octet-stream

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é