Mes propres webservices ?


#1

Bonjour.

J’aimerai savoir s’il est possible que mon application déclare ses propres services web.
Y a t’il un mécanisme déjà existant pour cela ?

Merci. Johan.


#2

Hello @johan,

est-ce que tu pourrais détailler ce que tu entends par « services Web » ?

Les applications Cozy sont uniquement clientes, utilisant les services fournis par les API du serveur. Pour l’instant, il n’est pas possible pour une application cliente d’ajouter ses propres API côté serveur, mais nous sommes ouvert·e·s à la discussion pour enrichir les API du serveur :slight_smile:


#3

Je désire créer un système de workflow documentaire. Le workflow est ma spécialité.
Pour cela une logique coté serveur, assez complexe en terme de droits, est nécessaire.


#4

J’en appelle à @nono, notre architecte pour la partie serveur, mais je crains que ça ne soit difficile pour l’instant.

Une piste serait peut-être de développer un worker spécifique pour votre application. Ce sont des tâches qui peuvent tourner sur le serveur pour effectuer différentes opérations (envoyer un courriel, créer des miniatures de photos, etc). Les workers sont écrits en Go.


#5

Quelle est cette logique côté serveur ? Normalement, une application Cozy ne manipule des données que pour un seul utilisateur, donc elle ne devrait pas avoir de problèmes de complexités en terme de droits.


#6

Le moteur de workflow documentaire gère l’équivalent de formulaires papier passant d’une personne à l’autre.

Par exemple une personne fait une demande de congés (formulaire de congés), une fois la demande faite le moteur envoie le document à son responsable pour validation puis une fois validé il es envoyé au RH. Avec des e-mails permettant de prévenir et des listes dynamiques de documents à traiter. Toutes ces étapes sont modélisées via un outil visuel puis le moteur gère l’envoie aux personnes concernées, ou aux personnes ayant un rôle spécifique. C’est là un cas simple … les workflows documentaires sont bien plus complexes (ex: génération de documents dérivés puis regroupement).


#7

une approche, innovante, seriat que chaque utilisateur dispose de son propre cozy qui notifie la personne suivante du workflow. Pour ça tu pourrais utiliser le partage d’un doc (un json par ex) qui détaille le flow en cours et qui lors de mise à jour est propagé chez chaque utilisateur, déclanchant alors les actions. Un moteur de workflow en P2P en gros :slight_smile:
(si dans le workflow il devait y avoir un “master” et des personnes qui n’aient pas le droit de tout voir dans le flow, tu pourrais chiffrer une partie des data avec les clé publiques despersonnes habilitées à voi telle ou telle info du flow.
Ca te parait jouable ? tiens nous au courant de tes réflexions. ++


#8

Je vois l’idée … le document encoderait les différentes étapes du worklfow associé et le moteur serait générique et exécuté dans le navigateur.

Je ne suis pas encore assez à l’aise avec Cozy pour peser tous les pour et les contres … l’intérêt ici est la décentralisation, ce qui est intéressant.

Pour de plus gros workflows, à usage professionnel, cette démarche doit être complétée. Il y a trois besoins :

  • Pouvoir exécuter des traitements sécurisés au niveau des données.
  • Pouvoir migrer les documents d’une version à une autre (certaines workflow s’exécutent sur plusieurs mois / années et doivent suivrent les changements de fonctionnalités).
  • Pouvoir créer des vues, c’est à dire des tableaux affichant des informations sur une sélection calculée de documents.

Pour l’instant je travaille sur l’outil permettant de dessiner les workflows / les formulaires associés / les vues / …
J’attaquerai en septembre la partie serveur … cela me laisse le temps de réfléchir.