Xtended Flow

Présentation

L’addon Xtended-flow permet de bénéficier de flux JSON supplémentaires.

Installation

Tableau des versions :

Process Xtended-flow Lien
15.3.2 1.0.0
15.3.2 1.0.1 download
15.3.2 1.1.0
15.3.2 1.2.0
16.0.0 1.3.0
16.0.0 1.4.0
16.4.0 1.4.1
17.0.0 1.5.0
17.2.0 1.6.0
18.0.0 1.7.0
2024.0.0 2024.0.0

Installation & Configuration

  1. Copier l’archive ZIP de l’addon à la racine de l’instance Process et extraire l’archive à cette emplacement.

  2. Arreter l’instance Process.

  3. Effectuer un applyconfig

  4. Redémarrer l’instance Process

Fonctionnement

L’authentification a effectuer avant de pouvoir interroger les flux de cet addon est la même que pour les flux standard décrit dans leur documentation ici

Flux

Dans les flux suivants, la variable token est le token d’authentification récupéré lors de l’authentification effectuée en amont.

Library

View

Type de document

C’est un flux JSON qui est interrogeable par une méthode POST sur l’url de forme suivante:

    {{server}}:{{port}}/{{app_context}}/navigation/xtendedflow?module=library&cmd=view&flowmode=json&_AuthenticationKey={{token}}

Voici un exemple de body demandant la liste des types de document de l’espace documentaire de protocol-uri uri://vdoc/datastore/032-000000-000.

{
  "view": {
  	"header": {
      "scopes": {
        "library": { "@protocol-uri": "uri://vdoc/datastore/032-000000-000" }
      },
      "definition": { "@class": "com.axemble.vdoc.sdk.interfaces.IResourceDefinition" }
  	}
  }
}

Et voici un exemple de résultat retourné par l’addon:

{
    "view": {
        "header": {
            "@login": "sysadmin"
        },
        "body": {
            "resource-definition": [
                {
                    "@name": "typeDocA",
                    "@label": "Type de document A",
                    "@protocol-uri": "uri://vdoc/fileCenterResourceDefinition/034-000000-000",
                    "properties": [
                        {
                            "@name": "liste",
                            "@label": "Liste",
                            "@mandatory": false,
                            "@max-length": 0,
                            "@display-type": "textselectlistmultiple",
                            "@row-number": 0,
                            "@width": 0,
                            "@selection-multiple": false,
                            "list": {
                                "@name": "list",
                                "@label": "list",
                                "@selection-multiple": false,
                                "@type": "OPTION",
                                "values": [
                                    {
                                        "@key": "a",
                                        "@value": "A"
                                    },
                                    {
                                        "@key": "b",
                                        "@value": "B"
                                    }
                                ]
                            },
                            "@defaultValue": "a",
                            "@type": "STRING",
                            "@index-type": "UNKNOWN"
                        },
                        {
                            "@name": "propaa",
                            "@label": "propAA",
                            "@mandatory": false,
                            "@max-length": 20,
                            "@display-type": "text",
                            "@row-number": 0,
                            "@width": 0,
                            "@selection-multiple": false,
                            "@defaultValue": "",
                            "@type": "STRING",
                            "@index-type": "UNKNOWN"
                        },
                        {
                            "@name": "propab",
                            "@label": "propAB",
                            "@mandatory": false,
                            "@max-length": 20,
                            "@display-type": "text",
                            "@row-number": 0,
                            "@width": 0,
                            "@selection-multiple": false,
                            "@defaultValue": "",
                            "@type": "STRING",
                            "@index-type": "UNKNOWN"
                        }
                    ]
                }
            ]
        }
    }
}

On récupère donc la liste des types de document (resource-definition) de l’espace documentaire concerné et pour chaque type, la liste de ses propriétés (properties).

Security

View

Droit de lecture d’un répertoire d’espace documentaire

C’est un flux JSON qui est interrogeable par une méthode POST sur l’url de forme suivante:

    {{server}}:{{port}}/{{app_context}}/navigation/xtendedflow?module=security&cmd=view&flowmode=json&_AuthenticationKey={{token}}

Voici un exemple de body pour demander la liste des authorizations de lecture du répertoire d’espace documentaire de protocol-uri uri://vdoc/datastore/031-000000-001.

{
  "view": {
  	"header": {
      "scopes": {
        "folder": { "@protocol-uri": "uri://vdoc/datastore/031-000000-001" }
      }
  	}
  }
}

Et voici un exemple de résultat retourné par l’addon:

{  
   "view":{  
      "header":{  
         "@login":"sysadmin"
      },
      "body":{  
         "permissions":{  
            "organizations":[  
               {  
                  "uri":"uril://vdoc/organization/DefaultOrganization",
                  "label":"Organisation par défaut",
                  "recursive":"true"
               }
            ],
            "users":[  
               {  
                  "uri":"uril://vdoc/user/user1",
                  "label":"user1 user1"
               },
               {  
                  "uri":"uril://vdoc/user/user2",
                  "label":"user2 user2"
               }
            ],
            "groups":[  
               {  
                  "uri":"uril://vdoc/group/OrganizationDeTest/grp",
                  "label":"grp"
               }
            ],
            "all-users":[  
               {  
                  "label":"Everybody"
               }
            ],
            "unknown":"true",
            "unreadable":"false"
         }
      }
   }
}

Les permissions remontées sont:

  • Les organisations qui ont un droit minimum de lecture (paramètrage “Tout le monde” avec filtre organisationnel) avec ou sans option de récursivité
  • les utilisateurs qui ont un droit minimum de lecture
  • Les groupes qui ont un droit minimum de lecture
  • Une balise “all-users” accompagnée d’un label “Everybody” si une authorisation avec un droit minimum de lecture est attribuée à tout le monde sans filtre organisationnel ni géographique.
  • Un flag “unknown” à true si d’autres lignes de sécurité sont présentes mais ne tombent dans les trois cas précédents.
  • Un flag “unreadable” à true si des lignes de sécurité supplémentaires sont présentes mais ne peuvent être présentées le flux car l’utilisateur actuellement identifié pour lire le flux n’a pas les droits nécessaires pour les voir.

Notifications

Send

Notification à propos de documents

C’est un flux JSON qui est interrogeable par une méthode POST sur l’url de forme suivante:

    {{server}}:{{port}}/{{webapp}}/navigation/xtendedflow?module=notification&cmd=send&_AuthenticationKey={{token}}&flowmode=json

Ci-dessous un exemple de body renseignant deux fichiers par leur URI, ainsi que des organisations, groupes et utilisateurs à notifier. Le body renseigne également le titre voulu pour le mail ainsi que son contenu et la langue (“en” ou “fr”).

ATTENTION : le flux renvoyant des users renverra des uril, et non pas des uri. Pour les users, il faut donc ajouter un “l” après uri si les uri utilisés se terminent par un nom ou login, et utiliser “uri” si l’uri se termine par un numéro de type id. Exemple : uri : “uri://vdoc/user/13” uril : “uril://vdoc/user/user-name”,

{
  "send": {
  	"header": {
  		"scopes":{
  			"files": [
      			"uri://vdoc/document/037-000002-000",
      			"uri://vdoc/document/037-000003-000"
        	]
  		}
  	},
  	"body" : {
  		"language" : "en",
  		"title" : "A new file is available",
  		"message" : "A new file has been added in a workplace folder you're subscribed to",
  		"organizations": [ 
          	"uri://vdoc/organization/11",
          	"uri://vdoc/organization/12",
          	"uri://vdoc/organization/25"
        ],
       "groups" : [
          	"uri://vdoc/group/21",
          	"uri://vdoc/group/22",
          	"uri://vdoc/group/28"
      	],
       "users" : [
          	"uri://vdoc/user/13",
            "uri://vdoc/user/12",
            "uri://vdoc/user/11",
            "uri://vdoc/user/50"
      	]
  	}
  }
}

Ci-dessous un exemple de résultat retourné par l’addon. Les éléments retournés sont :

  • notifiedUsers : le nombre de mails envoyés
  • usersNoRights : les users qui n’avaient pas les droits de lecture sur le/les fichier(s).
  • usersNoMail : les users qui n’ont pas renseigné de mail dans leur profil.
{
    "response": {
        "header": {
            "@login": "sysadmin"
        },
        "body": {
            "notifiedUsers": 2,
            "usersNoRights": [
                "uri://vdoc/user/6"
            ],
            "usersNoMail": []
        }
    }
}