Retour d'expérience sur Nuxeo Studio

Nuxeo Studio est une plateforme en ligne fournie par Nuxeo qui a pour vocation d'aider à la personnalisation d'une instance de la GED.

Cet article est donc dédié à un retour d'expérience sur l'outil afin d'aider à son utilisation en prévenant de certains écueils et donner quelques pistes d'améliorations pour toute personne concernée qui me lira ;-)

Création de types de documents personnalisés

Il est relativement aisé de mette en place des nouveaux documents, portant des attributs spécifiques. Il suffit pour cela de déclarer le nouveau document comme étendant par exemple "File", décrire son nouveau schéma (nouveaux attributs) puis redéfinir les vues d'affichage et de création pour accéder à ces nouvelles valeurs :

Pour afficher les nouveaux attributs dans la vue "liste" d'un dossier, il faut créer une nouvelle vue de contenu (ContentView) qui sera appliqué à un nouveau type de Dossier :

La valorisation de cet attribut se fera lors de la création du fichier, avec par exemple le code suivant :

PropertyMap pMap = new PropertyMap();
pMap.set("dc:title", dataFileName);
pMap.set("MyFile:extractionDate", extractionDate);
documentService.createDocument(deptFolder, "MyFile", dataFileName, pMap);

Le seul reproche à faire lors de la création de la ContentView, est l'impossibilité de surcharger une vue existante, par exemple la vue "liste" par défaut d'un dossier, pour y ajouter seulement les colonnes voulues. La mise en place d'une nouvelle vue de contenu impose la définition de toutes les colonnes qui la compose, quitte, comme dans cet exemple, à reproduire à l'identique la vue liste du dossier.

Création d'arborescences personnalisées

Après la création des documents, vient naturellement la question de la mise en place d'une arborescence type pour certains objets, par exemple un Domaine, qui peut être constitué d'une structure prédéfinie lors de son initialisation. Problème majeur ici, il est impossible de définir via Studio plusieurs niveaux de documents!!

La solution de contournement est donc de découper chaque niveau en un nouveau type de document avec des fils directs uniquement. Mais si en plus la structure d'un dossier doit être conditionnée selon là où il est créé (workspace, section...), il vaut mieux s'en remettre à l'API pour créer un client capable de gérer les arborescences "manuellement".

Création de groupes

Une fonctionnalité intéressante de Studio est la création de groupes d'utilisateurs, qui seront ensuite accessibles par défaut sur l'instance personnalisée.

Cependant, comme on le voit sur cette image, même s'il est possible dès cette étape de définir les utilisateurs qui appartiendront à ce groupe, il est impossible de définir des sous-groupes. Or cet aspect est pourtant très important pour représenter les différents niveaux organisationnels d'une entreprise. Une intervention manuelle sera donc indispensable pour hiérarchiser ces groupes, plutôt fastidieux lorsque l'on en dénombre plusieurs dizaines... Et de ce côté, inutile de compter sur l'API Java qui ne propose pas la gestion des groupes (pour des raisons de sécurité, ce qui peut se comprendre).

Enfin, pour aller de mal en pis, après avoir pris la peine de créer tous les groupes métier, on peut s'apercevoir que lors du déploiement de l'extension, qu'il devient impossible pour les utilisateurs de l'entreprise d'accéder à l'application : en effet, Nuxeo ne cherche plus à les authentifier depuis le LDAP de l'entreprise, mais depuis une source SQL locale... Ceci provient du fait que l'extension Studio proposant la création des groupes n'a qu'une vocation de test (!! selon les dire même des développeurs Nuxeo) et a écrasé la configuration initiale de l'instance. Ainsi donc, il n'est pas possible à l'heure actuelle de créer dans Studio une extension de groupes basée sur LDAP...

Définition des droits d'accès

Une des fonctionnalités basique importante d'une GED est l'organisation des accès aux différentes ressources selon les rôles des utilisateurs. Ici encore, un bug (signalé) dans Studio cause la non prise en compte des règles définies sur les éléments de bas niveau dans les arborescences :

Qui plus est, après avoir pris le soin de créer tous les groupes utiles comme vu au point précédent, il n'est pourtant pas possible d'y accéder directement dans l'interface d'attribution des droits d'accès comme on le voit sur l'image précédente. Seul un champ texte attend la saisie du nom du groupe à utiliser... Ne serait-il pas possible de créer une liste déroulante à partir des groupes précédemment définis?? Idem pour les droits : comment savoir quel droit utiliser? Certes, on connait habituellement "Read", "Write" mais le premier piège : "All", qui généralement correspond au regroupement des deux précédents, est en fait dans Nuxeo "Everything"... Et qu'en est-il des autres droits existant ("Manage workflow"...)? Une simple erreur de frappe et la configuration est bancale! Pourquoi ne pas avoir une liste déroulante basée sur l'énumération utilisée dans le code SecurityConstants (seul endroit où l'on trouve la liste de tous les droits d'accès!!!)

Pour conclure, on peut dire avec ce bref tour d'horizon que Nuxeo Studio est né d'une bonne (voire nécessaire) idée, c'est-à-dire l'élaboration d'une plateforme d'aide à la personnalisation d'une instance de la GED, mais il reste encore quelques progrès à faire pour faciliter l'utilisation aux néophytes comme moi qui n'ont aucune autre connaissance de l'aspect technique du système. L'espoir de pour une fois ne pas avoir à mettre les doigts dans le code s'évapore assez vite!


Fichier(s) joint(s) :

3 commentaires:

Anonyme a dit…

Bonjour,

D'abord merci pour ton retour sur le client automation et studio :)

Concernant les groupes et les utilisateurs dans Studio, on va vraiment rester sur du test pour plusieurs raisons. Ajouter une généreration de conf multi-directory via Studio nous prendrait beaucoup de temps. On préfère se concentrer sur des fonctionalités plus orienté utilisateur final.
Ca se complique encore plus si ton projet studio est utilisé sur différent serveurs sans que ces serveurs aient la même conf utilisateurs/groupes.

Pour la création d'arbo personalisées, tu es effectivement limité par l'interface de Studio. Tu peux néanmoins jetter un oeuil à l'explorer de contributions.
Ce point d'extension est utilisé pour générer les arbo dans studio. Il y a un attribut path qui te permet d'avoir plusieurs niveaux de profondeurs pour un type de doc donné. Tu peux coller des contributions dans Studio dans Advanced Settings/XML contributions. Mais bon je te le concède, quelque part c'est tricher :D

Si tu as des questions surtout n'hésite pas.

Laurent

Paul-Emmanuel Faidherbe a dit…

Bonjour,

Merci de prendre le temps de me lire et de réagir.

Je comprends bien que certains éléments causant aujourd'hui des "bugs" peuvent impliquer de lourds développements. L'essentiel est que nous soyons arrivés à nos fins.

Mais concernant les petits éléments d'IHM que j'ai signalés, des petites évolutions seront-elles prévues?

Anonyme a dit…

Bonjour,

Pour compléter les propos de Laurent, la fonctionnalité sur la gestion des utilisateurs n'a pas pour but de mettre en place et administrer la structure de groupes mapant l'organisation des employés. Elle a été pensée pour faire figurer les groupes qui seraient parfois utilisés pour conditionner l'affichage de certains onglets ou champs de métadonnées, et notamment dans le but de pouvoir tester ces paramètres rapidement. Dans ce cadre, nous ne prévoyons pas l'ajout de la gestion des sous-groupes. Si vous souhaitez maintenir dans votre paramétrage applicatif une structure de groupes et sous-groupes, il vous faut déclarer une extension avec les fichiers csv qui contiennent ces valeurs (quatre fichiers csv, un pour les groupes, un pour le mapping groupe/sous-groupe et un pour les users et un pour le maping user/groupe). Vous pouvez trouver des exemples dans les sources Nuxeo sur le module de gestion d'utilisateurs.
Par contre, votre désagrément suite à l'override de la conf ldap doit pouvoir être évité, j'ai référencé votre cas sur un ticket plus ou moins lié:
https://jira.nuxeo.com/browse/NXS-545?focusedCommentId=114307#comment-114307

Concernant vos remarques d'ergonomie sur la fonctionnalité "Structure template" dans Studio, nous n'ajouterons probablement pas la suggestion de users groupes pour les raisons évoquées ci-dessus, mais avoir une liste déroulante pour lister les permissions semble tout à fait pertinent, nous rajouterons ca pour la 2.7 ! (le scope 2.6 est figé).