Alfresco

Installer & Configurer votre instance Flower

    Le connecteur Alfresco pour Flower permet de disposer des fonctionnalités Flower pour des contenus stockés dans Alfresco 5.2.2.


    Cette documentation s’appuie sur la propriété ${F_HOME} définissant le répertoire dans lequel est stocké la configuration de FlowerDocs.

    Ce répertoire doit être défini par serveur d’application (au niveau de la JVM) grâce à la propriété flower.docs.config.dir. Il doit contenir le fichier de configuration flowerdocs.properties

    flowerdocs.properties

    L’ensemble des propriétés permettant de configurer les applications WEB doivent être ajoutées dans un fichier flowerdocs.properties situé dans le répertoire ${F_HOME}.
    Ce fichier est chargé au démarrage de la JVM, les modifications ne sont donc prises en compte qu’après redémarrage du serveur d’application.

    ws.url=http://<flower host>:<flower port>/<flower context path>/services
    file.dir=C:\\Flower\\Files\\	
    
    ######## Alfresco Configuration #####################################################
    core.services.dao=alfresco
    
    thumbnail.class=fd:thumbnail
    componentclass.prefix.allowed=fd:,fdg:
    tag.prefix.allowed=fd:,fdg:
     
    component.search.ignore.classes:fd:annotation,fd:css,fd:script,fd:guiConfiguration,fd:operationHandlerRegistration,fd:thumbnail	
    


    Les propriétés propres à Alfresco sont :

    Propriété Description
    core.services.dao=alfresco Définition du connecteur à utiliser. La notion de connecteur est porté par l’implémentation de l’API DAO

    Les différents timeout du client HTTP utilisé par ce connecteur sont configurables de la façon suivante :

    Propriété Valeur par défaut (ms) Description
    alfresco.http.client.connection.timeout 30000 Timeout de connection
    alfresco.http.client.read.timeout 120000 Timeout de lecture
    alfresco.http.client.write.timeout 120000 Timeout d’écriture

    Lors de la récupération des groupes auquel appartient un utilisateur ou bien les membre d’un groupe, Alfresco remontent uniquement les 100 premiers. Ces paramètres sont configurable :

    Propriété Valeur par défaut Description
    alfresco.max.group.members 100 Nombre de membres d’un groupe
    alfresco.max.user.groups 100 Nombre de groupes d’un utilisateur

    Téléchargement

    Télécharger les applications suivantes :

    Flower GUI
    Interface graphique (Version : 2.4.2.5)

    Flower Core
    Coeur de l'application exposant des web services (Version : 2.4.2.5)

    ARender HMI
    Interface graphique de la visionneuse (Version : 2.4.2.5)

    Notes de version
    Version : 2.4.2.5

    Déploiement

    Renommer les applications selon les nom suivants :

    • GUI : flower-docs-gui-webapp-2.4.2.5.war → gui.war
    • Core : flower-docs-core-webapp-2.4.2.5.war → core.war
    • ARender : flower-docs-arender-hmi-2.4.2.5.war → flower-docs-arender.war

    Copier les trois applications WEB renommées dans le répertoire ${TOMCAT_HOME}/webapps



    Pour configurer les applications déployées, il est nécessaire de suivre la procédure en fonction du connecteur concerné.

    Des règles de classement automatique dans un dossier peuvent être définies pour tous les types de composant via la propriété alfresco.auto.classify.

    Les noeuds Alfresco devant impérativement être classés dans un dossier, ils sont par défaut stockés dans /Flower/<Année>/<Mois>/<Jour>. Ce dossier par défaut est configurable en définissant la propriété alfresco.auto.classify.defaultPath.

    Des règles peuvent être définies en fonction :

    • de la catégorie du composant : alfresco.auto.classify.paths[DOCUMENT], alfresco.auto.classify.paths[VIRTUAL_FOLDER], alfresco.auto.classify.paths[FOLDER] ou `alfresco.auto.classify.paths[TASK]
    • de la classe du composant (par exemple : alfresco.auto.classify.paths[fdg\:Claim])


    Les règles définies acceptent plusieurs variables permettant la définition des règles de classement :

    • Variable tag : %(tag)
    • Variable classe : %(classid)
    • Variables date de création :
      • %(YEAR) : année
      • %(MONTH) : mois en chiffre (exemple : 01)
      • %(DAY) : jour en chiffre (exemple : 01)

    Nota : Les identifiants de classe pouvant contenir des :, il est nécessaire de les protéger par des \ et de les encapsuler dans des crochets [].

    Stockage dans un site

    Il est recommandé de stocker ces documents dans des sites afin de cloisonner les données. Actuellement, la création du site est un prérequis. La création de l’arborescence utilise uniquement la création de noeud de type Folder et non le service dédié au site.

    Pour classer les documents de type fdg:Claim dans un site sample-flower-docs, ajouter la propriété suivante :

    alfresco.auto.classify.paths[fdg\:Claim]=/Sites/sample-flower-docs/documentLibrary/Claim/%(YEAR)/%(MONTH)/%(DAY)
    

    Les types, aspects et propriétés doivent être définis préalablement dans Alfresco.

    Classes de tags

    Les classes de tag à surcharger dans Flower sont les tags de type USER, TEXT, CHOICELIST et CONDITIONAL. Pour les autres classes de tag, la définition des propriétés Alfresco est suffisante.

    L’ajout du libellé d’un tag se paramètre dans la partie définition de propriétés d’Alfresco.

    Pour les tag de type liste de choix et conditionnel, le nom symbolique Flower doit correspondre à la valeur d’une contrainte Alfresco qui doit être définie préalablement dans Alfresco sous forme de contraintes.

    La notion de tag obligatoire et de valeur par défaut dans le document se paramètre directement dans Alfresco au niveau de la définition de propriété. De plus, si le tag est noté comme obligatoire il le sera pour toutes les classes de composants. Si besoin, les notions de tag obligatoire et de valeur par défaut peuvent être gérées en fonction de la classe des composants à l’aide d’un développement spécifique en utilisant un script Javascript.

    Classes de composants

    Pour chaque type Alfresco, créer la propriété alfresco.aspects[nom_du_type] en listant les aspects présents dans ce type séparés par une virgule : Nota : Les identifiants de classe pouvant contenir des :, il est nécessaire de les protéger par des \ et de les encapsuler dans des crochets [].

    alfresco.aspects.n[fd\:Claim]=fd:aspect1|fd:aspect2|fd:aspect3
    

    Un même type peut avoir plusieurs combinaisons d’aspects, dans ce cas il faut séparer chaque combinaison pour un pipe | :

    alfresco.aspects.n[fd\:Claim]=fd:aspect1|fd:aspect2|fd:aspect3|fd:aspect1|fd:aspect4|fd:aspect5
    

    Ces propriétés vont faire le lien entre les types Alfresco et les classes de composants Flower (documents, dossiers virtuels, tâches). Chaque combinaison va générer un identifiant de classe Flower (classid).

    Il est possible de positionner des ACLs différentes en fonction des tags d’un composant. Ces règles peuvent être définies en fonction de la classe du composant.

    Nota : Les identifiants de classes pouvant contenir des :, il est nécessaire de les protéger par des \ et de les encapsuler dans des crochets [].

    Exemple : ACL en fonction des valeurs de tags fdg:categorie et fdg:sousCategorie

    alfresco.acl.strategies[fdg\:Claim]=ACL_%(fdg:categorie)_%(fdg:sousCategorie)
    

    Pour chaque identifiant d’ACL généré / possible, il est nécessaire de définir l’ACL correspondante (fichier XML dans Data Dictionary/Flower/SecurityObjects).

    Flower fournit un module Alfresco permettant de générer une arborescence de dossier en positionnant des permissions (couples rôle / authority) sur les dossiers. L’arborence à générer doit être décrite dans un fichier XML flower-conf-directories.xml situé dans Data Dictionary / Flower / DirectoriesConfiguration.

    Exemple de configuration d’arborescence :

    <?xml version="1.0" encoding="UTF-8"?>
    <flowerDirectories>
        <rootDirectory name="flower" isInheritanceEnabled="false" enableReadForAuthority="GROUP_EVERYONE">
            <directory name="cat1">
                <directory name="scat1-1">
                    <directory name="sscat1-1-1">
                        <permissions isInheritanceEnabled="false">
                            <ace authority="GROUP_FLOWER_LECTEURS" permission="Consumer" accessStatus="ALLOWED"/>
                            <ace authority="GROUP_FLOWER_COLLABORATEURS" permission="Collaborator" accessStatus="ALLOWED"/>
                        </permissions>
                    </directory>
                    <directory name="sscat1-1-2">
                        <permissions isInheritanceEnabled="false">
                            <ace authority="GROUP_FLOWER_LECTEURS" permission="Consumer" accessStatus="ALLOWED"/>
                            <ace authority="GROUP_FLOWER_COLLABORATEURS" permission="Collaborator" accessStatus="ALLOWED"/>
                        </permissions>
                    </directory>
                </directory>
                <directory name="scat1-2">
                    <permissions isInheritanceEnabled="false">
                        <ace authority="GROUP_FLOWER_LECTEURS" permission="Consumer" accessStatus="ALLOWED"/>
                        <ace authority="GROUP_FLOWER_COLLABORATEURS" permission="Collaborator" accessStatus="ALLOWED"/>
                    </permissions>
                </directory>
            </directory>
            <directory name="cat2">
                <directory name="scat2-1">
                    <directory name="sscat2-1-1">
                        <permissions isInheritanceEnabled="false">
                            <ace authority="GROUP_FLOWER_LECTEURS" permission="Consumer" accessStatus="ALLOWED"/>
                            <ace authority="GROUP_FLOWER_COLLABORATEURS" permission="Collaborator" accessStatus="ALLOWED"/>
                        </permissions>
                    </directory>
                </directory>
            </directory>
        </rootDirectory>
    </flowerDirectories>
    

    Afin de générer l’arborescence à partir du fichier XML déposé dans Alfresco, il suffit de faire un :

    GET /alfresco/s/flower/directory-manager

    Il est également possible d’exécuter ce WebScript à partir de la console d’admin /alfresco/s/index/family/Flower.