fix PRDFlow (doc)
This commit is contained in:
parent
81fb45394a
commit
21cff729a4
@ -18,7 +18,7 @@
|
|||||||
* 8.2. [Fonctionnalités optionnelles](#Fonctionnalitsoptionnelles)
|
* 8.2. [Fonctionnalités optionnelles](#Fonctionnalitsoptionnelles)
|
||||||
* 8.3. [Création et envoi](#Crationetenvoi-1)
|
* 8.3. [Création et envoi](#Crationetenvoi-1)
|
||||||
* 8.4. [Réception](#Rception-1)
|
* 8.4. [Réception](#Rception-1)
|
||||||
* 9. [RequestPrdList - Demande de Listes ( RequestPcd)](#RequestPrdList-DemandedeListesRequestPcd)
|
* 9. [RequestPrdList - Demande de Listes ](#RequestPrdList-DemandedeListesRequestPcd)
|
||||||
* 9.1. [Schéma des flux](#Schmadesflux-1)
|
* 9.1. [Schéma des flux](#Schmadesflux-1)
|
||||||
* 9.2. [Création : Datas spécifiques](#Cration:Datasspcifiques)
|
* 9.2. [Création : Datas spécifiques](#Cration:Datasspcifiques)
|
||||||
* 9.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques)
|
* 9.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques)
|
||||||
@ -64,7 +64,7 @@ Voir [_Doc_references.md](_Doc_references.md).
|
|||||||
* `RequestPrdMessage`: Envoi de messages publics, confidentiels ou privés et/ou de transactions Silent Payments des autres `RequestPrd` à diffuser sur le réseau des nœuds de la side chain. Les `RequestPrdMessage` peuvent répondre les uns aux autres.
|
* `RequestPrdMessage`: Envoi de messages publics, confidentiels ou privés et/ou de transactions Silent Payments des autres `RequestPrd` à diffuser sur le réseau des nœuds de la side chain. Les `RequestPrdMessage` peuvent répondre les uns aux autres.
|
||||||
* `RequestPrdUpdate`: Demande de mise à jour d'une liste d'`Item` (publiée via un `RequestPCD`), qui sera déchiffrée et validée ou non par des `RequestPrdResponse` en retour.
|
* `RequestPrdUpdate`: Demande de mise à jour d'une liste d'`Item` (publiée via un `RequestPCD`), qui sera déchiffrée et validée ou non par des `RequestPrdResponse` en retour.
|
||||||
* `RequestPrdConfirm`: Confirmation de la réception des `RequestPrd` (à l'exception de `RequestPrdConfirm` eux-même).
|
* `RequestPrdConfirm`: Confirmation de la réception des `RequestPrd` (à l'exception de `RequestPrdConfirm` eux-même).
|
||||||
* `RequestPrdResponse`: Réponse aux autres types de `RequestPrd` (à l'exception de `RequestPrdConfirm`, `RequestPrdResponse` et `RequestPrdMessage`).
|
* `RequestPrdResponse`: Réponse aux autres types de `RequestPrd` (à l'exception de `RequestPrdConfirm`, et `RequestPrdMessage`).
|
||||||
|
|
||||||
* **Message**: Enveloppe commune pour les `RequestPrd` et `RequestPcd` lors de leur transmission aux relais et de leur réception depuis les relais. Dans cette enveloppe les `RequestPrd` et `RequestPcd` sont chiffrés par la `ProcessKey` de l'`ItemProcess` (cf. [Specs-Definition](SpecsDefinition.md)) et ajoutés au champs `RequestEnc`.
|
* **Message**: Enveloppe commune pour les `RequestPrd` et `RequestPcd` lors de leur transmission aux relais et de leur réception depuis les relais. Dans cette enveloppe les `RequestPrd` et `RequestPcd` sont chiffrés par la `ProcessKey` de l'`ItemProcess` (cf. [Specs-Definition](SpecsDefinition.md)) et ajoutés au champs `RequestEnc`.
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ Les `RequestPrd` sont des demandes d'actions ou des réponses à ces demandes, i
|
|||||||
* Envoi de message, pouvant initier un échange de messagerie ou répondre à un autre `RequestPrdMessage`.
|
* Envoi de message, pouvant initier un échange de messagerie ou répondre à un autre `RequestPrdMessage`.
|
||||||
* `RequestPrdUpdate` : Souvent la première requête d'un workflow, un `RequestPrdUpdate` ne répond pas à un autre `RequestPrd`.
|
* `RequestPrdUpdate` : Souvent la première requête d'un workflow, un `RequestPrdUpdate` ne répond pas à un autre `RequestPrd`.
|
||||||
* `RequestPrdConfirm` : Répond à tous les autres types de `RequestPrd` (à l'exception des `RequestPrdConfirm` eux-mêmes).
|
* `RequestPrdConfirm` : Répond à tous les autres types de `RequestPrd` (à l'exception des `RequestPrdConfirm` eux-mêmes).
|
||||||
* `RequestPrdResponse` : Répond à tous les autres types de `RequestPrd` (à l'exception des `RequestPrdConfirm`, `RequestPrdMessage` et `RequestPrdResponse` eux-mêmes). Dans le cas d'une réponse à un `RequestPrdList` ou d'un `RequestPrdUpdate`, le `RequestPrdResponse` doit obligatoirement être accompagné d'un `RequestPcd`.
|
* `RequestPrdResponse` : Répond à tous les autres types de `RequestPrd` (à l'exception des `RequestPrdConfirm`, `RequestPrdResponse` eux-mêmes). Dans le cas d'une réponse à un `RequestPrdList` ou d'un `RequestPrdUpdate`, le `RequestPrdResponse` doit obligatoirement être accompagné d'un `RequestPcd`.
|
||||||
|
|
||||||
Selon le type de `RequestPrd`, les demandes peuvent s'adresser à tous les membres de l'`ItemProcess`, aux gestionnaires du type d'`Item` concerné ou simplement à l'émetteur, selon :
|
Selon le type de `RequestPrd`, les demandes peuvent s'adresser à tous les membres de l'`ItemProcess`, aux gestionnaires du type d'`Item` concerné ou simplement à l'émetteur, selon :
|
||||||
|
|
||||||
@ -128,7 +128,7 @@ Ce qui est résumé pour l'envoi :
|
|||||||
Les traitements pour la réception des `RequestPrd` varient selon leur type, principalement autour des aspects suivants :
|
Les traitements pour la réception des `RequestPrd` varient selon leur type, principalement autour des aspects suivants :
|
||||||
|
|
||||||
* **Notification user** : Nécessité de notifier l'utilisateur courant, ou non.
|
* **Notification user** : Nécessité de notifier l'utilisateur courant, ou non.
|
||||||
* **`RequestPrdConfirm` to send**: Envoi d'une confirmaiton, ou non
|
* **`RequestPrdConfirm` to send**: Envoi d'une confirmation, ou non
|
||||||
* **`RequestPrdResponse` to send**: Envoi d'un `RequestPrdResponse` ou non.
|
* **`RequestPrdResponse` to send**: Envoi d'un `RequestPrdResponse` ou non.
|
||||||
* **`RequestPrdResponse` reply waiting**: Attente d'un `RequestPrdResponse` en retour ou non.
|
* **`RequestPrdResponse` reply waiting**: Attente d'un `RequestPrdResponse` en retour ou non.
|
||||||
* **`RequestPrdConfirm` reply waiting (from `RequestPrdResponse` send )**: Attente d'un `RequestPrdConfirm` en retour ou non.
|
* **`RequestPrdConfirm` reply waiting (from `RequestPrdResponse` send )**: Attente d'un `RequestPrdConfirm` en retour ou non.
|
||||||
@ -138,10 +138,10 @@ Ce qui est résumé Pour la réception :
|
|||||||
| `request_type` | Notification user | `RequestPrdConfirm` to send | `RequestPcd` to send | `RequestPrdResponse` to send | `RequestPrdResponse` reply waiting | `RequestPrdConfirm` reply waiting (from `RequestPrdResponse` send ) |
|
| `request_type` | Notification user | `RequestPrdConfirm` to send | `RequestPcd` to send | `RequestPrdResponse` to send | `RequestPrdResponse` reply waiting | `RequestPrdConfirm` reply waiting (from `RequestPrdResponse` send ) |
|
||||||
|----------------------|-----------------------------------|------------------------------|----------------------|-----------------------------------------------------------------|------------------------------------|---------------------------------------------------------------------|
|
|----------------------|-----------------------------------|------------------------------|----------------------|-----------------------------------------------------------------|------------------------------------|---------------------------------------------------------------------|
|
||||||
| `RequestPrdList` | No | Yes | Yes | all the members of the `item_name` `Role` into to `ItemProcess` | No | Yes |
|
| `RequestPrdList` | No | Yes | Yes | all the members of the `item_name` `Role` into to `ItemProcess` | No | Yes |
|
||||||
| `RequestPrdUpdate` | Info | Yes | No | all the members of all `Role` into to `ItemProcess` | Yes (other members) | Yes |
|
| `RequestPrdUpdate` | RequestPrd | Yes | No | all the members of all `Role` into to `ItemProcess` | Yes (other members) | Yes |
|
||||||
| `RequestPrdMessage` | Waiting `RequestPrdMessage` reply | if no `raw_transaction_list` | No | No | No | No |
|
| `RequestPrdMessage` | Waiting `RequestPrdMessage` reply | if no `raw_transaction_list` | No | No | No | No |
|
||||||
| `RequestPrdResponse` | Info | Yes | No | No | No | No |
|
| `RequestPrdResponse` | RequestPrd | Yes | No | No | No | No |
|
||||||
| `RequestPrdConfirm` | Info | No | No | No | No | No |
|
| `RequestPrdConfirm` | RequestPrd | No | No | No | No | No |
|
||||||
|
|
||||||
## 6. <a name='Encryption'></a>Encryption
|
## 6. <a name='Encryption'></a>Encryption
|
||||||
|
|
||||||
@ -171,34 +171,6 @@ Principaux champs des `Request` contenus dans les `RequestPcd` et `RequestPrd` c
|
|||||||
* **`request_prd_origin_hash`** : Hash du `RequestPrd` à l'origine du `RequestPrd`.
|
* **`request_prd_origin_hash`** : Hash du `RequestPrd` à l'origine du `RequestPrd`.
|
||||||
* **`item_reference_hash`** : Hash de l'`Item` auquel le `RequestPcd` fait référence.
|
* **`item_reference_hash`** : Hash de l'`Item` auquel le `RequestPcd` fait référence.
|
||||||
|
|
||||||
### 6.1. <a name='Crationetenvoi'></a>Création et envoi
|
|
||||||
|
|
||||||
Les `RequestPcd` et les `RequestPrd` sont envoyés sous forme de messages (`JSON`) via les `websockets` des relais.
|
|
||||||
|
|
||||||
Ces `Message` contiennent soit des `RequestPrd`, soit des `RequestPcd`, encapsulés dans l'attribut `request_enc`, lequel est chiffré à l'aide de la clé `ProcessKey` de l'`ItemProcess` concerné.
|
|
||||||
|
|
||||||
Les `RequestPrd` et `RequestPcd` sont au format JSON. Voir [Specs-Datamodel.md](Specs-Datamodel.md).
|
|
||||||
|
|
||||||
**Création du message et envoi**: voir [Message-SP-Specs.md](Message-SP-Specs.md).
|
|
||||||
|
|
||||||
### 6.2. <a name='Rception'></a>Réception
|
|
||||||
|
|
||||||
Les `RequestPcd` et `RequestPrd` sont reçus sous forme de messages (`JSON`) via les `websockets` des relais.
|
|
||||||
|
|
||||||
Ces messages contiennent des `RequestPrd` ou des `RequestPcd` encapsulés dans l'attribut `request_enc`, lequel est chiffré avec la clé `ProcessKey` de l'`ItemProcess` concerné.
|
|
||||||
|
|
||||||
À la réception des `Message`, ceux-ci sont déchiffrés puis conservés ou non, selon le `process_hash` du `RequestPcd` ou du `RequestPrd` (dans l'attribut `request`). Si le `process_hash` n'est pas reconnu, le message est ignoré.
|
|
||||||
|
|
||||||
Les types `RequestPrd` et `RequestPcd` sont distingués par l'attribut `request_type` dans le `Message`.
|
|
||||||
|
|
||||||
En cas de `RequestPcd` ou `RequestPrd` liés via `RequestPcd_reference_hash`, `request_prd_reference_hash`, `RequestPcd_origin_hash`, `request_prd_origin_hash` ou `item_reference_hash` (dans des `RequestPcd`), il est nécessaire d'avoir reçu ou d'attendre ces documents pour traiter le message.
|
|
||||||
|
|
||||||
Les `RequestPrd` et `RequestPcd` sont au format JSON. Voir [Specs-Datamodel.md](Specs-Datamodel.md).
|
|
||||||
|
|
||||||
**Réception du message**: voir [Message-SP-Specs.md](Message-SP-Specs.md).
|
|
||||||
|
|
||||||
Pour les `RequestPcd` et `RequestPrd`, il est nécessaire de vérifier si le hash du document est déjà enregistré ; si tel est le cas, le message est ignoré.
|
|
||||||
|
|
||||||
## 7. <a name='FonctiondesRequestPcd'></a>Fonction des RequestPcd
|
## 7. <a name='FonctiondesRequestPcd'></a>Fonction des RequestPcd
|
||||||
|
|
||||||
Les Portable Contract Documents (`RequestPcd`) sont des documents au format `JSON` encapsulant des listes versionnées d'`Item`, dont les attributs sont chiffsrés selon trois niveaux de confidentialité : public, par rôles spécifiques, ou privé. (cf. [Specs-Security.md](Specs-Security.md)).
|
Les Portable Contract Documents (`RequestPcd`) sont des documents au format `JSON` encapsulant des listes versionnées d'`Item`, dont les attributs sont chiffsrés selon trois niveaux de confidentialité : public, par rôles spécifiques, ou privé. (cf. [Specs-Security.md](Specs-Security.md)).
|
||||||
@ -208,7 +180,7 @@ Les `Item` échangés via les `RequestPcd` sont soumis à une vérification par
|
|||||||
Principaux champs des `RequestPcd` :
|
Principaux champs des `RequestPcd` :
|
||||||
|
|
||||||
* **`request`** : cf la descripton de la structure `Request`.
|
* **`request`** : cf la descripton de la structure `Request`.
|
||||||
* **`item_enc_list`** : Les `Item` chiffrés par une clé symétrique générée à la volée pour chaque champ et pour chaque item d'une liste.
|
* **`item_enc_list`** : Les `Item` chiffrés sous forme `RequestPcdItemGenericEnc` par une clé symétrique générée à la volée pour chaque champ et pour chaque item d'une liste.
|
||||||
* **`pagination`** : La pagination de la liste des `Item`.
|
* **`pagination`** : La pagination de la liste des `Item`.
|
||||||
|
|
||||||
Principaux champs de la structure `Pagination` :
|
Principaux champs de la structure `Pagination` :
|
||||||
@ -260,18 +232,15 @@ La création d'un `RequestPcd` suit plusieurs étapes :
|
|||||||
2. Ajouts et modifications éventuelles des `Item`.
|
2. Ajouts et modifications éventuelles des `Item`.
|
||||||
3. Chiffrement des attributs de chaque `Item` selon les règles de confidentialité et de partage des clés (cf. [Specs-Security.md](Specs-Security.md)).
|
3. Chiffrement des attributs de chaque `Item` selon les règles de confidentialité et de partage des clés (cf. [Specs-Security.md](Specs-Security.md)).
|
||||||
4. Chiffrement du `RequestPcd` avec la clé `ProcessKey` du `ItemProcess` concerné.
|
4. Chiffrement du `RequestPcd` avec la clé `ProcessKey` du `ItemProcess` concerné.
|
||||||
5. Traitements communs aux `RequestPcd` et `RequestPrd`.
|
|
||||||
|
|
||||||
### 7.3. <a name='Rception-1'></a>Réception
|
### 7.3. <a name='Rception-1'></a>Réception
|
||||||
|
|
||||||
La réception d'un `RequestPcd` suit plusieurs étapes :
|
La réception d'un `RequestPcd` suit plusieurs étapes :
|
||||||
|
|
||||||
1. Traitements communs aux `RequestPcd` et `RequestPrd`.
|
|
||||||
2. Recherche des `RequestPrd` en relation via `RequestPcd_reference_hash` et `RequestPcd_origin_hash` de ces `RequestPrd`, et attente si nécessaire.
|
2. Recherche des `RequestPrd` en relation via `RequestPcd_reference_hash` et `RequestPcd_origin_hash` de ces `RequestPrd`, et attente si nécessaire.
|
||||||
3. Déchiffrage des attributs publics des `Item` des `RequestPcd` avec la `ProcessKey` du `ItemProcess` concerné.
|
3. Déchiffrage des attributs publics des `Item` des `RequestPcd` avec la `ProcessKey` du `ItemProcess` concerné.
|
||||||
4. Déchiffrage des attributs confidentiels des `Item` des `RequestPcd` avec les clés de déchiffrement fournies par l'attribut `RequestPcd_keys_role_confidential_list_enc_by_shared_secret` des `RequestPrd`.
|
4. Déchiffrage des attributs confidentiels des `Item` des `RequestPcd` avec les clés de déchiffrement fournies par l'attribut `RequestPcd_keys_role_confidential_list_enc_by_shared_secret` des `RequestPrd`.
|
||||||
5. Déchiffrage des attributs privés des `Item` des `RequestPcd` avec la clé privée `KeyRecover`.
|
5. Déchiffrage des attributs privés des `Item` des `RequestPcd` avec la clé privée `KeyRecover`.
|
||||||
6. Mise à jour du cache pour le traitement des `RequestPrd`.
|
|
||||||
|
|
||||||
## 8. <a name='FonctiondesRequestPrd'></a>Fonction des`RequestPrd`
|
## 8. <a name='FonctiondesRequestPrd'></a>Fonction des`RequestPrd`
|
||||||
|
|
||||||
@ -281,7 +250,7 @@ Les clés permettant le chiffrement des attributs confidentiels par rôles des `
|
|||||||
|
|
||||||
Les `RequestPrd` se déclinent en plusieurs types, tels que `RequestPrdList`, `RequestPrdMessage`, `RequestPrdUpdate`, etc., correspondant à différentes actions comme l'envoi de messages, la mise à jour des informations contractuelles, ou la confirmation de transactions.
|
Les `RequestPrd` se déclinent en plusieurs types, tels que `RequestPrdList`, `RequestPrdMessage`, `RequestPrdUpdate`, etc., correspondant à différentes actions comme l'envoi de messages, la mise à jour des informations contractuelles, ou la confirmation de transactions.
|
||||||
|
|
||||||
Principaux champs des `RequestPcd` :
|
Principaux champs des `RequestPrd` :
|
||||||
|
|
||||||
* **`request`** : cf la descripton de la structure `Request`.
|
* **`request`** : cf la descripton de la structure `Request`.
|
||||||
* **`sig_value`** : Valeur de la signature (parmi les valeurs valant pour `OK`, `KO` ou `none` telles que définies dans l'`ItemProcess`).
|
* **`sig_value`** : Valeur de la signature (parmi les valeurs valant pour `OK`, `KO` ou `none` telles que définies dans l'`ItemProcess`).
|
||||||
@ -315,65 +284,32 @@ Pour simplifier, les `RequestPrdConfirm` n'ont pas été inclus dans le schéma.
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
### 8.2. <a name='Fonctionnalitsoptionnelles'></a>Fonctionnalités optionnelles
|
|
||||||
|
|
||||||
L'attribut `sig_value` permet d'attribuer une valeur aux signatures. Les valeurs des signatures sont définies par rôles dans les `ItemProcess`, avec des valeurs pouvant être `OK`, `KO` ou `none` pour les validations des `RequestPrd`.
|
|
||||||
|
|
||||||
Lorsque la réponse fait référence à un `RequestPcd`, cela est précisé dans `RequestPcd_reference_hash`; de même pour les `RequestPrd` avec `request_prd_reference_hash`.
|
|
||||||
|
|
||||||
Lorsque la réponse fait suite directement à un `RequestPcd`, cela est indiqué dans `RequestPcd_origin_hash`; idem pour les `RequestPrd` avec `request_prd_origin_hash`.
|
|
||||||
|
|
||||||
Les `RequestPrdResponse` signalent de façon confidentielle :
|
|
||||||
|
|
||||||
* soit des conditions ad hoc déjà remplies via les attributs `payment_method_enc_by_shared_secret`, `deposit_method_enc_by_shared_secret`, `commitment_method_enc_by_shared_secret`, `commitment_request_pcd_hash_list` pour les paiements et les preuves ad hoc éventuellement associées aux `RequestPcd` de la nouvelle version.
|
|
||||||
* soit des appels à recevoir les moyens de satisfaire ces conditions via les attributs `ask_payment_method_enc_by_shared_secret`, `ask_deposit_method_enc_by_shared_secret`, `ask_commitment_method_enc_by_shared_secret`.
|
|
||||||
|
|
||||||
Les `Item` associés sont référencés dans des `RequestPcd` identifiés par `payment_request_pcd_hash_list_enc_by_shared_secret`, `cap_request_pcd_hash_list_enc_by_shared_secret` (dans le cas de paiements temporaires en attente du passage d'un cap), `deposit_request_pcd_hash_list_enc_by_shared_secret` et `commitment_request_pcd_hash_list_enc_by_shared_secret`.
|
|
||||||
|
|
||||||
Des champs de messages peuvent accompagner les `RequestPrd` via `message_public`, `message_confidential`, `message_private`.
|
|
||||||
|
|
||||||
Il est également possible de partager des clés de chiffrement ad hoc via `certif_key_enc_by_shared_secret`.
|
|
||||||
|
|
||||||
En plus des horodatages automatiques, il est possible de déclarer un timestamp dans `timestamp_declared`, qui ne sera pas pris en compte dans le traitement mais sera ainsi tracé dans les éléments de preuve.
|
|
||||||
|
|
||||||
Les adresses et les rôles sont précisés en cas d'utilisateurs ayant plusieurs rôles dans les `ItemProcess` et pour préciser les adresses de réponse en cas d'utilisation sur plusieurs dispositifs.
|
|
||||||
|
|
||||||
Tous les échanges sont complétés par l'empreinte du dispositif de l'émetteur, envoyée de façon confidentielle via `device_footprint_enc_by_shared_secret`.
|
|
||||||
|
|
||||||
### 8.3. <a name='Crationetenvoi-1'></a>Création et envoi
|
### 8.3. <a name='Crationetenvoi-1'></a>Création et envoi
|
||||||
|
|
||||||
La création d'un `RequestPrd` suit plusieurs étapes :
|
La création d'un `RequestPrd` suit plusieurs étapes :
|
||||||
|
|
||||||
1. Récupération des clés de chiffrement confidentiel des attributs des items d'un `RequestPcd`.
|
1. Récupération des clés de chiffrement confidentiel des attributs des items d'un `RequestPcd`.
|
||||||
2. Chiffrement du `RequestPrd` avec la clé `ProcessKey` du `ItemProcess` concerné.
|
2. Création d'une `adresse SP` pour le partage de la `KeyConfidential` et pour l'horodatage du hash du `RequestPrd` dans un output de la transaction
|
||||||
3. Création d'une `adresse SP` pour le partage de la `KeyConfidential` et pour l'horodatage du hash du `RequestPrd` dans la side chain.
|
3. Chiffrement des clés confidentielles avec la `KeyConfidential`.
|
||||||
4. Création du `message` contenant le `RequestPrd` chiffré, la preuve de travail, et l'adresse du faucet.
|
4. Créer `RequestPrdMessage` pour la publication de la `transaction SP`
|
||||||
5. Sélection de 4 relais pour le message selon l'historique des pings et des réponses obtenues.
|
|
||||||
6. Sélection de 4 noeuds de signet pour l'envoi de la `transaction SP`.
|
|
||||||
7. Chiffrement des données confidentielles du `RequestPrd` avec la `KeyConfidential` de la `transaction SP`.
|
|
||||||
8. Envoi du message aux relais.
|
|
||||||
9. Envoi de la transaction aux noeuds de signet à travers un `RequestPrdMessage` pour la publication de la `transaction SP` avec le hash du `RequestPrd` dans l'attribut `request_prd_reference_hash`.
|
|
||||||
10. Mise à jour du cache avec les nouveaux `RequestPrd` envoyés (sans mise en cache du `RequestPrdMessage`).
|
|
||||||
|
|
||||||
Voir [Silent-Payment-Specs.md](Silent-Payment-Specs.md).
|
Voir [Silent-Payment-Specs.md](Silent-Payment-Specs.md).
|
||||||
|
|
||||||
### 8.4. <a name='Rception-1'></a>Réception
|
### 8.4. <a name='Rception-1'></a>Réception
|
||||||
|
|
||||||
La réception d'un `RequestPcd` suit plusieurs étapes :
|
La réception d'un `RequestPrd` suit plusieurs étapes :
|
||||||
|
|
||||||
1. Traitements communs aux `RequestPcd` et `RequestPrd`.
|
1. Recherche des `RequestPcd` en relation via `RequestPcd_reference_hash` et `RequestPcd_origin_hash`, attente si nécessaire et traitement de ceux-ci.
|
||||||
2. Recherche des `RequestPcd` en relation via `RequestPcd_reference_hash` et `RequestPcd_origin_hash`, attente si nécessaire et traitement de ceux-ci.
|
2. Vérification de la conformité des `RequestPcd` en relation.
|
||||||
3. Vérification de la conformité des `RequestPcd` en relation.
|
3. Recherche des `RequestPrd` en relation via `request_prd_reference_hash` et `request_prd_origin_hash`, attente si nécessaire et traitement de ceux-ci.
|
||||||
4. Recherche des `RequestPrd` en relation via `request_prd_reference_hash` et `request_prd_origin_hash`, attente si nécessaire et traitement de ceux-ci.
|
4. Vérification de la conformité des `RequestPrd` en relation.
|
||||||
5. Vérification de la conformité des `RequestPrd` en relation.
|
5. Recherche de l'`Item` associé via `item_reference_hash`, attente si nécessaire et traitement de celui-ci.
|
||||||
6. Recherche de l'`Item` associé via `item_reference_hash`, attente si nécessaire et traitement de celui-ci.
|
6. Déchiffrage des attributs confidentiels notés `<attribut>_enc_by_shared_secret` depuis la `KeyConfidential`
|
||||||
7. Déchiffrage des attributs confidentiels notés `<attribut>_enc_by_shared_secret` depuis la `KeyConfidential` de la `transaction SP` correspondante via le hash du `RequestPrd` dans l'output `2` de la transaction.
|
7. Déchiffrage les champs confididentiels depuis la `KeyConfidential`
|
||||||
8. Mise à jour du cache pour le traitement des `RequestPrd`.
|
8. Validation des conditions définies dans le `ItemProcess` pour cet `Item`, avec le `Role` correspondant dans le `ItemProcess`, et dans ces rôles, les conditions pour ce type de `RequestPrd` (dans l'attribut `request_prd_type`)
|
||||||
9. Consultation du `RequestPrdConfirm` pour création et envoi.
|
9. Traitements spécifiques au type de `RequestPrd`.
|
||||||
10. Validation des conditions définies dans le `ItemProcess` pour cet `Item`, avec le `Role` correspondant dans le `ItemProcess`, et dans ces rôles, les conditions pour ce type de `RequestPrd` (dans l'attribut `request_prd_type`) telles que définies dans [Specs-Process-Roles-Specs.md](Specs-Process-Roles-Specs.md).
|
|
||||||
11. Traitements spécifiques au type de `RequestPrd`.
|
|
||||||
|
|
||||||
## 9. <a name='RequestPrdList-DemandedeListesRequestPcd'></a>RequestPrdList - Demande de Listes ( RequestPcd)
|
## 9. <a name='RequestPrdList-DemandedeListesRequestPcd'></a>RequestPrdList - Demande de Listes
|
||||||
|
|
||||||
Utile pour les utilisateurs souhaitant consulter ou explorer des listes de contrats, de membres, ou d'autres items dans le réseau. Chaque `RequestPcd` liste des `Item` d'un même type, tels que les `ItemProcess`, les `ItemMember`, les `ItemPeer`, les `ItemPayment`, etc.
|
Utile pour les utilisateurs souhaitant consulter ou explorer des listes de contrats, de membres, ou d'autres items dans le réseau. Chaque `RequestPcd` liste des `Item` d'un même type, tels que les `ItemProcess`, les `ItemMember`, les `ItemPeer`, les `ItemPayment`, etc.
|
||||||
|
|
||||||
|
@ -1,9 +1,48 @@
|
|||||||
<mxfile host="Electron" modified="2024-03-20T16:29:45.989Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.0.4 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="XFeOrrn0K27n1AZZabWl" version="24.0.4" type="device">
|
<mxfile host="Electron" modified="2024-03-20T16:30:03.222Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.0.4 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="U1sIeVLENQ47mf9KFPoB" version="24.0.4" type="device">
|
||||||
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
|
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
|
||||||
<mxGraphModel dx="1434" dy="838" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
<mxGraphModel dx="1434" dy="838" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||||
<root>
|
<root>
|
||||||
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
|
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
|
||||||
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
|
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
|
||||||
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-15" value="" style="group" vertex="1" connectable="0" parent="WIyWlLk6GJQsqaUBKTNV-1">
|
||||||
|
<mxGeometry x="320" y="190" width="120" height="940" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-13" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;strokeColor=#C2C2C2;" edge="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="62" y="940" as="sourcePoint" />
|
||||||
|
<mxPoint x="62" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-0" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
||||||
|
<mxGeometry y="50" width="120" height="60" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
||||||
|
<mxGeometry y="140" width="120" height="60" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
||||||
|
<mxGeometry y="230" width="120" height="60" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-3" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
||||||
|
<mxGeometry y="320" width="120" height="60" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-4" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
||||||
|
<mxGeometry y="410" width="120" height="60" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-5" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
||||||
|
<mxGeometry y="500" width="120" height="60" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-6" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
||||||
|
<mxGeometry y="590" width="120" height="60" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-7" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
||||||
|
<mxGeometry y="680" width="120" height="60" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-8" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
||||||
|
<mxGeometry y="766" width="120" height="60" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-9" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
||||||
|
<mxGeometry y="856" width="120" height="60" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
<mxCell id="jpdV1vV9o7sr3iGcI0SG-34" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="jpdV1vV9o7sr3iGcI0SG-18" edge="1">
|
<mxCell id="jpdV1vV9o7sr3iGcI0SG-34" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="jpdV1vV9o7sr3iGcI0SG-18" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<mxPoint x="150" y="1020" as="targetPoint" />
|
<mxPoint x="150" y="1020" as="targetPoint" />
|
||||||
@ -239,45 +278,6 @@
|
|||||||
<mxCell id="jpdV1vV9o7sr3iGcI0SG-77" value="PRDConfirm<br>TX_Sp" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
<mxCell id="jpdV1vV9o7sr3iGcI0SG-77" value="PRDConfirm<br>TX_Sp" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
||||||
<mxGeometry x="91" y="793.0043243243243" width="120" height="40.54054054054054" as="geometry" />
|
<mxGeometry x="91" y="793.0043243243243" width="120" height="40.54054054054054" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-15" value="" style="group" vertex="1" connectable="0" parent="WIyWlLk6GJQsqaUBKTNV-1">
|
|
||||||
<mxGeometry x="810" y="180" width="120" height="940" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-13" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;strokeColor=#C2C2C2;" edge="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
||||||
<mxPoint x="62" y="940" as="sourcePoint" />
|
|
||||||
<mxPoint x="62" as="targetPoint" />
|
|
||||||
</mxGeometry>
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-0" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
|
||||||
<mxGeometry y="50" width="120" height="60" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
|
||||||
<mxGeometry y="140" width="120" height="60" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
|
||||||
<mxGeometry y="230" width="120" height="60" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-3" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
|
||||||
<mxGeometry y="320" width="120" height="60" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-4" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
|
||||||
<mxGeometry y="410" width="120" height="60" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-5" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
|
||||||
<mxGeometry y="500" width="120" height="60" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-6" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
|
||||||
<mxGeometry y="590" width="120" height="60" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-7" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
|
||||||
<mxGeometry y="680" width="120" height="60" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-8" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
|
||||||
<mxGeometry y="766" width="120" height="60" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-9" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
|
||||||
<mxGeometry y="856" width="120" height="60" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
</root>
|
</root>
|
||||||
</mxGraphModel>
|
</mxGraphModel>
|
||||||
</diagram>
|
</diagram>
|
||||||
|
@ -1,46 +1,46 @@
|
|||||||
<mxfile host="Electron" modified="2024-03-20T16:30:03.222Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.0.4 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="U1sIeVLENQ47mf9KFPoB" version="24.0.4" type="device">
|
<mxfile host="Electron" modified="2024-03-21T10:53:28.601Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.0.4 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="AVC7KL9Yah0ulxh9qXZf" version="24.0.4" type="device">
|
||||||
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
|
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
|
||||||
<mxGraphModel dx="1434" dy="838" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
<mxGraphModel dx="954" dy="576" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||||
<root>
|
<root>
|
||||||
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
|
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
|
||||||
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
|
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-15" value="" style="group" vertex="1" connectable="0" parent="WIyWlLk6GJQsqaUBKTNV-1">
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-15" value="" style="group" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1" connectable="0">
|
||||||
<mxGeometry x="320" y="190" width="120" height="940" as="geometry" />
|
<mxGeometry x="320" y="190" width="120" height="940" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-13" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;strokeColor=#C2C2C2;" edge="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-13" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;strokeColor=#C2C2C2;" parent="n8NZEWj3z1Uz_2AXR3Mj-15" edge="1">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="62" y="940" as="sourcePoint" />
|
<mxPoint x="62" y="940" as="sourcePoint" />
|
||||||
<mxPoint x="62" as="targetPoint" />
|
<mxPoint x="62" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-0" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-0" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" parent="n8NZEWj3z1Uz_2AXR3Mj-15" vertex="1">
|
||||||
<mxGeometry y="50" width="120" height="60" as="geometry" />
|
<mxGeometry y="50" width="120" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" parent="n8NZEWj3z1Uz_2AXR3Mj-15" vertex="1">
|
||||||
<mxGeometry y="140" width="120" height="60" as="geometry" />
|
<mxGeometry y="140" width="120" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" parent="n8NZEWj3z1Uz_2AXR3Mj-15" vertex="1">
|
||||||
<mxGeometry y="230" width="120" height="60" as="geometry" />
|
<mxGeometry y="230" width="120" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-3" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-3" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" parent="n8NZEWj3z1Uz_2AXR3Mj-15" vertex="1">
|
||||||
<mxGeometry y="320" width="120" height="60" as="geometry" />
|
<mxGeometry y="320" width="120" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-4" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-4" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" parent="n8NZEWj3z1Uz_2AXR3Mj-15" vertex="1">
|
||||||
<mxGeometry y="410" width="120" height="60" as="geometry" />
|
<mxGeometry y="410" width="120" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-5" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-5" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" parent="n8NZEWj3z1Uz_2AXR3Mj-15" vertex="1">
|
||||||
<mxGeometry y="500" width="120" height="60" as="geometry" />
|
<mxGeometry y="500" width="120" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-6" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-6" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" parent="n8NZEWj3z1Uz_2AXR3Mj-15" vertex="1">
|
||||||
<mxGeometry y="590" width="120" height="60" as="geometry" />
|
<mxGeometry y="590" width="120" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-7" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-7" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" parent="n8NZEWj3z1Uz_2AXR3Mj-15" vertex="1">
|
||||||
<mxGeometry y="680" width="120" height="60" as="geometry" />
|
<mxGeometry y="680" width="120" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-8" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-8" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" parent="n8NZEWj3z1Uz_2AXR3Mj-15" vertex="1">
|
||||||
<mxGeometry y="766" width="120" height="60" as="geometry" />
|
<mxGeometry y="766" width="120" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-9" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" vertex="1" parent="n8NZEWj3z1Uz_2AXR3Mj-15">
|
<mxCell id="n8NZEWj3z1Uz_2AXR3Mj-9" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#ABABAB;" parent="n8NZEWj3z1Uz_2AXR3Mj-15" vertex="1">
|
||||||
<mxGeometry y="856" width="120" height="60" as="geometry" />
|
<mxGeometry y="856" width="120" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="jpdV1vV9o7sr3iGcI0SG-34" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="jpdV1vV9o7sr3iGcI0SG-18" edge="1">
|
<mxCell id="jpdV1vV9o7sr3iGcI0SG-34" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="jpdV1vV9o7sr3iGcI0SG-18" edge="1">
|
||||||
@ -76,10 +76,10 @@
|
|||||||
<mxCell id="jpdV1vV9o7sr3iGcI0SG-4" value="<span style="color: rgb(0, 0, 0);">PRDList</span><br>PRDMessage" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
<mxCell id="jpdV1vV9o7sr3iGcI0SG-4" value="<span style="color: rgb(0, 0, 0);">PRDList</span><br>PRDMessage" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
||||||
<mxGeometry x="530" y="430.0043243243244" width="120" height="40.54054054054054" as="geometry" />
|
<mxGeometry x="530" y="430.0043243243244" width="120" height="40.54054054054054" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="jpdV1vV9o7sr3iGcI0SG-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="jpdV1vV9o7sr3iGcI0SG-7" target="jpdV1vV9o7sr3iGcI0SG-27" edge="1">
|
<mxCell id="jpdV1vV9o7sr3iGcI0SG-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=classic;endFill=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="jpdV1vV9o7sr3iGcI0SG-7" target="jpdV1vV9o7sr3iGcI0SG-27" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="jpdV1vV9o7sr3iGcI0SG-7" value="PCD" style="rounded=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
<mxCell id="jpdV1vV9o7sr3iGcI0SG-7" value="PCD" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
||||||
<mxGeometry x="530" y="639.9986486486487" width="120" height="40.54054054054054" as="geometry" />
|
<mxGeometry x="530" y="639.9986486486487" width="120" height="40.54054054054054" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="jpdV1vV9o7sr3iGcI0SG-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="jpdV1vV9o7sr3iGcI0SG-8" target="jpdV1vV9o7sr3iGcI0SG-30" edge="1">
|
<mxCell id="jpdV1vV9o7sr3iGcI0SG-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="jpdV1vV9o7sr3iGcI0SG-8" target="jpdV1vV9o7sr3iGcI0SG-30" edge="1">
|
||||||
@ -131,7 +131,7 @@
|
|||||||
<mxCell id="jpdV1vV9o7sr3iGcI0SG-18" value="User A" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
<mxCell id="jpdV1vV9o7sr3iGcI0SG-18" value="User A" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
||||||
<mxGeometry x="90" y="259" width="120" height="40" as="geometry" />
|
<mxGeometry x="90" y="259" width="120" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="jpdV1vV9o7sr3iGcI0SG-27" value="PCD" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
<mxCell id="jpdV1vV9o7sr3iGcI0SG-27" value="PCD" style="rounded=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
||||||
<mxGeometry x="89" y="639.9986486486487" width="120" height="40.54054054054054" as="geometry" />
|
<mxGeometry x="89" y="639.9986486486487" width="120" height="40.54054054054054" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="jpdV1vV9o7sr3iGcI0SG-80" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="jpdV1vV9o7sr3iGcI0SG-30" target="jpdV1vV9o7sr3iGcI0SG-33" edge="1">
|
<mxCell id="jpdV1vV9o7sr3iGcI0SG-80" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="jpdV1vV9o7sr3iGcI0SG-30" target="jpdV1vV9o7sr3iGcI0SG-33" edge="1">
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
Loading…
x
Reference in New Issue
Block a user