Écriture en Y

Indexation des composants dans OpenSearch.

Le mécanisme d’écriture en Y permet, lors d’une création ou d’une mise à jour de composant, d’écrire les données à la fois dans Alfresco et dans OpenSearch.

Ce processus est réalisé de manière séquentielle :

  1. 1. écriture dans Alfresco
  2. 2. écriture dans OpenSearch si la première écriture a abouti

Objectifs

L’objectif direct de l’écriture en Y est de pouvoir stocker, en double, les données dans le moteur de recherche OpenSearch. Les données stockées dans OpenSearch peuvent ainsi être utilisées pour :

  1. 1. alimenter des tableaux de bord OpenSearch Dashboards
  2. 2. changer le moteur de recherche utilisé (c’est-à-dire remplacer Solr)

Mise en place

De l’écriture en Y

Afin de mettre en place l’écriture en Y, il est nécessaire :

Des recherches OpenSearch

L’utilisation d’OpenSearch est facilement activable en ajoutant la propriété core.dao.multi.search.es=true.

Ce mode doit toutefois être activé avec précaution. En effet, la sécurité portée par Alfresco ne peut être directement reflétée dans OpenSearch. Afin que les résultats de recherche tiennent compte des permissions de lecture, au moins une des propositions suivantes doit être vraie :

  • les ACLs portées par les composants stockées dans OpenSearch doivent refléter les autorisations de lecture
  • les groupes autorisés en lecture sur un noeud Alfresco doivent être reportés sur le composant stocké dans OpenSearch et être utilisés comme filtre de recherche


Lorsque l’utilisation d’OpenSearch est activée pour les recherches, toutes les recherches de composants sont concernées sauf les recherches :

  • utilisées pour déterminer les annotations d’un document
  • comportant un contexte language égal à cmis

Sécurisation par ACL

La sécurisation des résultats de recherche à l’aide du mécanisme natif d’évaluation des ACLs est désactivée par défaut avec l’utilisation du connecteur Alfresco. En effet avec les APIs Alfresco, les résultats de recherche retournés tiennent compte des politiques de sécurités définies. Ce mécanisme n’est donc pas nécessaire.

Pour activer ce mécanisme, la propriété component.search.secure=true doit être ajoutée.

Sécurisation par groupes autorisés

Ce type de sécurisation s’appuie sur les politiques de sécurité définies dans Alfresco. Lors de la création ou de la modification d’un noeud, les groupes autorisés en lecture sont récupérés et ajoutés comme tag durant la deuxième phase d’écriture dans OpenSearch.


component.tag.cleanup=authorizedGroups
alfresco.node.fieldToTag.authorizedGroup=authorizedGroups


Les changements de sécurité ou modifications apportés directement auprès d’Alfresco doivent être répercutés dans OpenSearch.

Afin d’identifier les composants concernés par des modifications apportées directement auprès d’Alfresco, il peut être utile de reporter également le chemin de classement des noeuds dans OpenSearch. Pour cela, la configuration suivante peut être ajoutée :


component.tag.cleanup=authorizedGroups,path
alfresco.node.fieldToTag.path=path