Modèles de fragment de contenu, requêtes persistantes et packages de contenu content-fragment-models-persisted-queries-and-content-packages

Les modèles de fragment de contenu et les requêtes GraphQL persistantes sont du contenu que vous pouvez créer et mettre à jour :

  • Modèles de fragment de contenu : /conf/<config>/settings/dam/cfm/models)
  • requêtes GraphQL persistantes : (/conf/<config>/settings/graphql/persistentQueries)

De nombreux projets les conservent dans Git et les envoient dans un package de contenu. Le mode de filtrage d’un tel package détermine ce qui se passe (y compris les modèles et les requêtes créés sur l’instance de création) :

  • mode="replace"

    • chaque nœud :

      1. couverts par le filtre
      2. mais non contenu dans le package
      3. est supprimé en mode de création et de publication chaque fois que le package est installé lors d’un déploiement de Cloud Manager
    • est le mode par défaut lorsqu’aucun mode n’est explicitement défini.

Les requêtes persistantes qui dépendent d’un modèle supprimé de cette manière échouent ensuite avec Schema provider failed.

FileVault applique la première entrée de filtre lorsque la racine couvre un chemin d’accès. L’ordre des entrées de filtre est donc important. Une entrée large telle que /conf/<config> est prioritaire lorsqu’elle est placée avant une entrée plus spécifique.

Configurations recommandées, en fonction de l’identité du propriétaire des modèles et des requêtes :

  • Géré dans Git :

    • une racine de filtre par modèle ou requête persistante détenue par le package, placée avant les entrées de /conf plus larges.
      Le contenu créé sur l’auteur n’est donc pas affecté.
    • S’il existe des entrées de conf avec une portée plus large, vous pouvez vous assurer qu’elles utilisent un mode de non-suppression, tel que update_properties, ou qu’elles excluent simplement un contenu spécifique détenu par l’auteur.
  • Propriété mixte :

    • mode="update_properties" : ajoute et met à jour, mais ne supprime jamais.

      L’inconvénient est qu’un modèle ou un champ supprimé dans Git reste dans AEM.

  • Détenus par les auteurs :

    • Ne les incluez pas dans le package ou ne les ensemencez qu’une seule fois avec mode="merge_properties"

      La fusion n’est pas adaptée aux modèles conservés dans Git, car les nœuds existants ne sont pas touchés et les modifications de modèle ne sont jamais déployées. FileVault a également abandonné la fusion et la mise à jour au profit de merge_properties et update_properties.

Exemple pour un projet qui conserve deux modèles dans Git et permet aux auteurs d’en créer d’autres :

<filter root="/conf/wknd/settings/dam/cfm/models/article"/>
<filter root="/conf/wknd/settings/dam/cfm/models/author"/>
<filter root="/conf/wknd" mode="update_properties"/>

Autres ressources further-resources

Voir également :

recommendation-more-help
experience-manager-cloud-service-help-main-toc