Recalcul des données graphe
###########################

Il est possible de recalculer les données du graphe en utilisant une requête :term:`DSL`. En effet, dans le cadre de la procédure de :term:`PRA`, il est nécessaire de pouvoir détecter les unités archivistiques ayant un graphe incohérent (construire le DSL requis) selon la procédure de déclenchement décrite ci-dessous.

Le recalcul de graphe permet de rétablir la cohérence des données :term:`VITAM`.

.. caution:: En cas de données de graphe incohérentes, le résultat des requêtes :term:`DSL` sur les unités archivistiques pourra être incorrect. Il n'est pas recommandé d'utiliser des champs du graphe calculés tels que `#allunitups`.

.. caution:: L'exécution des requêtes DSL n'est pas soumise à des filtres de sécurité définis dans les contrats d'accès.

Déclenchement
=============

Le recalcul du `graphe` est déclenché par l'appel au point d'API porté par l'URL suivante sur le composant ``metadata`` ::

   http://{{ ip_admin }}:{{ vitam.metadata.port_admin }}/metadata/v1/computegraph

Exemple d'appel à l'aide de curl :

.. code:: bash

    curl -s -X POST -H "X-Tenant-Id: <tenant>" -H "Content-Type: application/json" --user "${VITAM_ADMIN_AUTH}" --data @${CURRENT_DIR}/dslQuery.json ${URL}


Exemple de query DSL (dslQuery.json) :

.. code:: json


    {
      "$roots": [
        "aeaqaaaaaqhdytymabdeialenehzphiaaaeq",
        "aeaqaaaaaqhdytymabdeialenehzpbyaaajq"

    ... , "guid_n"
      ],
      "$query": [],
      "$projection": {}
    }

La valeur utilisée pour la basic authentication prend la forme suivante ::

  VITAM_ADMIN_AUTH={{ admin_basic_auth_user }}:{{ admin_basic_auth_password }}

* Le paramètre ``adminUser`` correspond à la valeur ``admin_basic_auth_user`` déclarée dans le fichier ``deployment/environments/group_vars/all/advanced/vitam_security.yml``
* Le paramètre ``adminPassword`` correspond à la valeur ``admin_basic_auth_password`` déclarée dans le fichier ``deployment/environments/group_vars/all/main/vault-vitam.yml``
