> For the complete documentation index, see [llms.txt](https://documentation.efalia.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.efalia.com/connecteurs/connecteurs-generiques/cmis.md).

# CMIS

## Introduction

Efalia Doc expose une API CMIS (Content Management Interoperability Services) permettant d'interagir avec son référentiel documentaire via des requêtes RESTful. Cette API suit le standard CMIS, tout en proposant des extensions adaptées aux usages Efalia.

C'est ce protocole générique qui sert de base à l'intégration avec des éditeurs tiers disposant déjà d'un client CMIS standard (par exemple les solutions métiers CIRIL Groupe).

{% hint style="info" %}
Cette page couvre l'implémentation CMIS **d'Efalia Doc**. Multigest expose également une implémentation CMIS distincte (connecteur MG Connect), documentée dans la documentation produit Multigest, rubrique Installation.
{% endhint %}

## Principes généraux

* **Authentification** : accès via authentification Basic (identifiant/mot de passe pour chaque requête HTTP).
* **Format** : appels HTTP (GET/POST) sur des endpoints REST exposés en HTTPS.
* **Paramétrage** : utilisation de paramètres d'URL et de formulaires pour piloter les actions.
* **Standard** : respect du standard CMIS 1.1 (gestion de documents, dossiers, métadonnées, etc.), avec adaptation aux modèles métiers Efalia.

## Périmètre fonctionnel des API

### Découverte et métadonnées

| Opération            | Méthode | Description                                                                                                                                               |
| -------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `getRepositories`    | GET     | Récupère la liste des dépôts/repositories disponibles.                                                                                                    |
| `getTypeChildren`    | GET     | Récupère les types enfants d'un type donné.                                                                                                               |
| `getTypeDefinitions` | GET     | Récupère la définition complète d'un type, y compris ses propriétés.                                                                                      |
| `getTypeDescendants` | GET     | Récupère l'arborescence des types d'objets du référentiel (complète ou limitée en profondeur), pour explorer la hiérarchie des types métiers et standard. |

### Gestion des dossiers

| Opération      | Méthode | Description                                                        |
| -------------- | ------- | ------------------------------------------------------------------ |
| `createFolder` | POST    | Crée un dossier (folder) dans le référentiel, avec ses propriétés. |

### Gestion des documents

| Opération          | Méthode | Description                                                                                                                                                    |
| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `createDocument`   | POST    | Ajoute un document dans un dossier, avec gestion des métadonnées, du fichier et du versioning.                                                                 |
| `getObjectParents` | GET     | Récupère le dossier parent d'un objet (document ou dossier) à partir de son identifiant unique.                                                                |
| `getFolderParent`  | GET     | Récupère le dossier parent pour un objet donné (document ou dossier) à partir de son identifiant.                                                              |
| `getChildren`      | GET     | Liste tous les objets enfants (documents et/ou dossiers) d'un dossier parent donné : permet la navigation hiérarchique et l'affichage du contenu d'un dossier. |
| `getObject`        | GET     | Récupère les métadonnées et informations d'un document ou dossier à partir de son ID.                                                                          |
| `getContentStream` | GET     | Récupère le contenu binaire/fichier d'un document.                                                                                                             |
| `updateProperties` | POST    | Met à jour les propriétés d'un objet (document ou dossier) existant.                                                                                           |
| `deleteObject`     | POST    | Supprime un objet du référentiel.                                                                                                                              |

### Recherche et interrogation

| Opération | Méthode | Description                                                                                                                                                                       |
| --------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query`   | GET     | Recherche avancée sur les documents et les dossiers par propriétés. Voir la [référence complète de la syntaxe de requête](/connecteurs/connecteurs-generiques/cmis/api-query.md). |

## Points d'attention et bonnes pratiques

{% hint style="warning" %}
Toujours utiliser HTTPS et ne jamais exposer les identifiants du compte technique en dur dans le code ou dans un fichier versionné.
{% endhint %}

* **Respect du modèle métier** : utiliser les types et propriétés métiers Efalia (ex. `efalia:connecteur-agent-contrat`).
* **Versioning** : géré nativement lors de la création/modification de document.
* **Succinct mode** : utiliser le paramètre `succinct=true` pour alléger les réponses.

## Ressources

* [Standard CMIS 1.1 (OASIS)](https://docs.oasis-open.org/cmis/CMIS/v1.1/CMIS-v1.1.html)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://documentation.efalia.com/connecteurs/connecteurs-generiques/cmis.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
