> 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/produit/efalia-safe/utilisation/manipulation-des-documents.md).

# Fonctions de manipulation des documents

Les fonctions présentées ici sont celles de l'interface graphique.

Les API REST proposent les mêmes fonctionnalités, avec des options supplémentaires. Les API REST sont documentés en détail dans une autre section.

{% hint style="info" %}
Pour rappel, seuls les utilisateurs simples peuvent utiliser ces fonctions, à condition qu'ils aient été habilités !
{% endhint %}

## Anatomie d'un document

Le document est le fichier dont on souhaite garantir l'intégrité en le stockant dans le coffre-fort. La norme parle "d'Objet Numérique" (ON).

Il possède les attributs suivants :

* un identifiant unique
* un nom de fichier : c'est la seule métadonnée qui peut être définie par l'utilisateur
* une empreinte : il s'agit de la somme de contrôle du fichier (<https://fr.wikipedia.org/wiki/Somme_de_contrôle>)
* l'algorithme utilisé pour calculer son empreinte
* la date à laquelle il a été déposé dans le coffre-fort
* un poids (en octets)
* un mime-type (par exemple : application/pdf).

{% hint style="info" %}
En dehors du nom du fichier, toutes ces informations sont calculées automatiquement lors du dépôt.

Aucune n'est modifiable, dans aucune circonstance.
{% endhint %}

Il n'y a pas de limite sur le type des documents stockés au coffre. Il est fortement recommandé de stocker des formats pérennes, comme le PDF/a.

L'algorithme de calcul d'empreinte utilisé par le coffre est SHA-512.

## Déposer un document

La fonction déposer permet d'ajouter un document dans un coffre-fort.

<figure><img src="https://3557286639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnXLnfB61CBUw4H9Fho%2Fuploads%2Fgit-blob-e69c890790ff6e0112704e0b97409f386e28fc35%2Fsafe-util-manipulation-des-documents-01.webp?alt=media" alt=""><figcaption></figcaption></figure>

Pour déposer un document, il faut d'abord sélectionner le conteneur dans lequel on souhaite déposer le document (1), puis cliquer sur "Ajouter un document" (2).

<figure><img src="https://3557286639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnXLnfB61CBUw4H9Fho%2Fuploads%2Fgit-blob-169f1dec092f8e0ff88f4989391387a09f05ca96%2Fsafe-util-manipulation-des-documents-02.webp?alt=media" alt=""><figcaption></figcaption></figure>

Une fenêtre de sélection de fichier apparaît alors et permet de sélectionner le fichier à déposer (3), puis de démarrer le transfert (4).

Une fois le transfert terminé, un message de succès apparaît.

<figure><img src="https://3557286639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnXLnfB61CBUw4H9Fho%2Fuploads%2Fgit-blob-c17da782d6f257ed0072deaafb3c22ef70721dd5%2Fsafe-util-manipulation-des-documents-03.webp?alt=media" alt=""><figcaption></figcaption></figure>

En mode API, les algorithmes de dépôt contrôlé pris en charge depuis la version 4.1.0 sont, en plus du SHA512 :

* SHA256 (OID : 2.16.840.1.101.3.4.2.1)
* SHA384 (OID : 2.16.840.1.101.3.4.2.2)

Endpoint : `/api/conteneurs/{id}/objets-numerique`

De plus, l'empreinte spécifiée est insensible à la casse.

### Différence entre l'interface graphique et les API REST

Deux options ne sont pas disponibles dans l'interface graphique mais uniquement via les API REST :

* Dépôt en mode contrôlé (optionnel) : il est possible de fournir une empreinte lors du dépôt. Lorsque c'est le cas, cette empreinte est contrôlée. Cela permet de garantir que ce qui est reçu est bien ce qui a été envoyé.
* Choix du nom du document (obligatoire) : par API, il est obligatoire de définir le nom du document lors du dépôt. Dans l'interface graphique, le nom du document d'origine est utilisé.

## Lister et compter les documents

Il s'agit de la fonction "rechercher" qui permet de lister les documents d'un conteneur donné selon des critères.

<figure><img src="https://3557286639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnXLnfB61CBUw4H9Fho%2Fuploads%2Fgit-blob-2a2674b2a590f9eb369ffafa9de6e38c4296cd15%2Fsafe-util-manipulation-des-documents-04.webp?alt=media" alt=""><figcaption></figcaption></figure>

Il faut d'abord sélectionner le conteneur dont on souhaite lister le contenu (1), puis saisir les filtres (2), et enfin déclencher la recherche (3).

La saisie des filtres est optionnelle. Si aucun filtre n'est rempli, la recherche va lister tous les documents du conteneur.

Le résultat est une liste de documents classés par ordre alphabétique sur l'identifiant unique du document :

<figure><img src="https://3557286639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnXLnfB61CBUw4H9Fho%2Fuploads%2Fgit-blob-2740e1b901b37bd265cb046e80f7af92956f8ae6%2Fsafe-util-manipulation-des-documents-05.webp?alt=media" alt=""><figcaption></figcaption></figure>

**Nouvelle interface** : depuis la version 4.1.0, la date de dépôt est également affichée dans l'interface pour les UTI-S.

<figure><img src="https://3557286639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnXLnfB61CBUw4H9Fho%2Fuploads%2Fgit-blob-ff47ab623ff0238650f7f8e88724d6dd361efadd%2Fsafe-util-manipulation-des-documents-06.webp?alt=media" alt=""><figcaption></figcaption></figure>

### Filtre par date de dépôt

Il est possible de restreindre la recherche aux documents déposés dans une période donnée.

Par exemple :

* entre 25/08/2023 et 05/09/2023 : la liste des documents déposés entre le 25 août 2023 et le 5 septembre 2023 inclus
* entre 25/08/2023 et 25/08/2023 : la liste des documents déposés le 25 septembre 2023

### Filtre par nom du document

Il est possible de restreindre la recherche aux documents grâce à leur nom : le nom du document doit contenir la valeur saisie.

### Filtre par identifiant unique du document

Il est possible de chercher un document en indiquant son identifiant unique. Plusieurs filtres peuvent être combinés et dans ce cas ils doivent tous correspondre.

### Différence entre l'interface graphique et les API REST

Dans les API REST, les fonctions lister et compter sont deux fonctions séparées.

## Lire un document et ses métadonnées

Il est possible de consulter un document et ses métadonnées.

<figure><img src="https://3557286639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnXLnfB61CBUw4H9Fho%2Fuploads%2Fgit-blob-71242548b9df2a4c1a0f7713f15fb44030c445bd%2Fsafe-util-manipulation-des-documents-07.webp?alt=media" alt=""><figcaption></figcaption></figure>

Il faut d'abord lister les documents par le biais d'une recherche, puis sélectionner un document (1).

Un volet s'affiche à droite (2) avec les métadonnées du document et des actions sur le document.

Pour lire le document, il faut le télécharger (3) et le consulter sur son poste.

### Différence entre l'interface graphique et le webservice

Dans les API REST, les fonctions lire et lire les métadonnées sont deux fonctions séparées.

## Détruire un document

Il est possible de détruire un document de façon irréversible.

<figure><img src="https://3557286639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnXLnfB61CBUw4H9Fho%2Fuploads%2Fgit-blob-53cb51f228ba09d588d7d54257ab0927a9c78a9e%2Fsafe-util-manipulation-des-documents-08.webp?alt=media" alt=""><figcaption></figcaption></figure>

Il faut d'abord lister les documents par le biais d'une recherche, puis sélectionner un document (1).

Un volet s'affiche à droite (2) avec les métadonnées du document et des actions sur le document.

Pour détruire le document, il faut sélectionner l'action "Supprimer" (3).

<figure><img src="https://3557286639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnXLnfB61CBUw4H9Fho%2Fuploads%2Fgit-blob-93b184bc5cdf49a51427ac5649f1c6ec2194701d%2Fsafe-util-manipulation-des-documents-09.webp?alt=media" alt=""><figcaption></figcaption></figure>

Une fenêtre de confirmation apparaît afin de confirmer la destruction du document (4).

{% hint style="danger" %}
Une fois confirmée, la destruction s'opère. Elle est irréversible, il ne sera plus possible de récupérer le document.
{% endhint %}

## Contrôler l'intégrité d'un document

Il est possible de vérifier manuellement l'intégrité d'un document.

<figure><img src="https://3557286639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnXLnfB61CBUw4H9Fho%2Fuploads%2Fgit-blob-b3cc2bb7032fd2b4c22e8e9312b409d45bee99e5%2Fsafe-util-manipulation-des-documents-10.webp?alt=media" alt=""><figcaption></figcaption></figure>

Il faut d'abord lister les documents par le biais d'une recherche, puis sélectionner un document (1).

Un volet s'affiche à droite (2) avec les métadonnées du document et des actions sur le document.

Pour contrôler l'intégrité du document, il faut sélectionner l'action "Contrôler l'intégrité" (3).

Un message de succès (ou d'erreur) s'affiche alors pour indiquer le résultat de l'opération.

<figure><img src="https://3557286639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnXLnfB61CBUw4H9Fho%2Fuploads%2Fgit-blob-f12dabfc7b34be62d914b8d311c1daa0795628d7%2Fsafe-util-manipulation-des-documents-11.webp?alt=media" alt=""><figcaption></figcaption></figure>


---

# 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/produit/efalia-safe/utilisation/manipulation-des-documents.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.
