5.3. Configuration des champs ObjectGroup devant être exclus de la recherche

Cette partie décrit le process d’exclure des propriétes des groupes d’objets lors de leurs recherche dans Vitam en tenant compte des différentes API qui remontent des données de groupes d’objets.

5.3.1. Configuration

Il faudrait tout d’abord configurer la propriéte objectGroupBlackListedFieldsForVisualizationByTenant, qui définit une Map associant un tenant à une black liste de propriétes de groupe d’objets. Cette liste de propriétes serait exclue d’affichage lors des recherchers faites sur la collection d’objet group pour le tenant concerné.

Ci-dessous un exemple de cette configuration, qui existe dans le fichier access-external.conf :

authentication: true
jettyConfig: jetty-config.xml
tenantFilter : true
authorizeTrackTotalHits : false
objectGroupBlackListedFieldsForVisualizationByTenant:
 0: ['Filename', '#operations', 'Size']
 1: ['Filename', '#opi']
 2: ['Filename']
 3: ['Filename']
 4: ['Filename']
 5: ['Filename']
 6: ['Filename']
 7: ['Filename']
 8: ['Filename']
 9: ['Filename']

Par défaut, tout les tenants du système (9 dans cet exemple ) déclarent le champ Filename dans leur black liste. Ensuite, libre à l’exploitant de gérer cette liste en rajoutant, modifiant, voir même supprimant le champ par défaut.

5.3.2. Fonctionnement

Une fois la configuration de la black liste est faite, et le(s) service(s) access-external démarré(s), les requêtes qui permettent de lancer des recherches sur les objets groupes, et qui prennent en considération un tenant d’utilisation, ne remontent plus au niveau des réponses, les propriétes déja mis dans la liste.

Ci-dessous les points d’API concernés :

/objects:
  displayName: Objects
  description: |
   API qui permet d'accéder aux objets groupes en se basant sur une requête qui utilisele langage de requête (DSL)
   de Vitam en entrée et retourne l'objet d'archives selon le DSL Vitam en cas de succès.
  get:
    description: |
      Requête qui retourne le résultat contenant un Object d'archives : ses métadonnées ou un de ses objets binaires.
      Dans le cas des métadonnées, la requête utilise le langage de requête DSL de type **recherche unitaire (GET BY ID)** de Vitam en entrée.
      'Accept' header est 'application/octet-stream' (objet binaire) ou 'application/json' (métadonnées)

      Permissions requises:
        - objects:read
    is: [AccessTraits.AccessUniqueObjectQualifierResponse, AccessTraits.AccessUniqueObjectResponse]
    headers:
      Accept:
        required: true
        enum: [ "application/octet-stream", "application/json" ]
/units/{{unit-id}}/objects:
  displayName: Objects of one ArchiveUnit
  description: |
   API qui définit les requêtes pour accéder à l'Objet d'archives associé à l'Unité d'archives s'il existe.
   La requête utilise le langage de requête (DSL) de Vitam en entrée et retourne l'objet d'archives selon le DSL Vitam en cas de succès.
  get:
    description: |
      Requête qui retourne le résultat contenant un Object d'archives : ses métadonnées ou un de ses objets binaires, rattachés
      à l'identifiant de l'unité archivistique en paramétre.

      Permissions requises:
        - units:id:objects:read:json

        ou
        - units:id:objects:read:binary
    is: [AccessTraits.AccessUniqueObjectQualifierResponse, AccessTraits.AccessUniqueObjectResponse]
    headers:
      Accept:
        required: true
        enum: [ "application/octet-stream", "application/json" ]