doc update and "FromForm" derivate delete
This commit is contained in:
parent
9924d8b647
commit
d698999de6
@ -1,27 +1,18 @@
|
||||
<!-- vscode-markdown-toc -->
|
||||
* 1. [Objectif](#Objectif)
|
||||
* 2. [Portée](#Porte)
|
||||
* 3. [Définitions et Abréviations](#DfinitionsetAbrviations)
|
||||
* 4. [Exigences de sécurité et de confidentialité](#Exigencesdescuritetdeconfidentialit)
|
||||
* 5. [Architecture générale](#Architecturegnrale)
|
||||
* 6. [Spécification des items](#Spcificationdesitems)
|
||||
* 7. [Spécification des roles](#Spcificationdesroles)
|
||||
* 8. [Spécifiation des PCD et PRD](#SpcifiationdesPCDetPRD)
|
||||
* 9. [Authentification des utilisateurs](#Authentificationdesutilisateurs)
|
||||
* 10. [Connexion via des tiers](#Connexionviadestiers)
|
||||
* 11. [Fonctionnalité de récupération de mot de passe](#Fonctionnalitdercuprationdemotdepasse)
|
||||
* 12. [Gestion de session basée sur un cache](#Gestiondesessionbasesuruncache)
|
||||
* 13. [Gestion des clés de l'identité (aussi les clés des transactions SP)](#GestiondesclsdelidentitaussilesclsdestransactionsSP)
|
||||
* 13.1. [Génération des clés privées (création des identités numériques)](#Gnrationdesclsprivescrationdesidentitsnumriques)
|
||||
* 13.1.1. [HD Wallet (BIP32 + BIP44)](#HDWalletBIP32BIP44)
|
||||
* 13.1.2. [Connexions avec une identité crée (`recover`)](#Connexionsavecuneidentitcrerecover)
|
||||
* 13.1.3. [Workflow des PRD et PCD](#WorkflowdesPRDetPCD)
|
||||
* 13.1.4. [Workflow des Messages, transactions SP et connexion aux web sockets](#WorkflowdesMessagestransactionsSPetconnexionauxwebsockets)
|
||||
* 14. [Spécifications du code](#Spcificationsducode)
|
||||
* 14.1. [Maintenance, environnement de déploiement](#Maintenanceenvironnementdedploiement)
|
||||
* 15. [Annexe](#Annexe)
|
||||
* 15.1. [Exemples de code](#Exemplesdecode)
|
||||
* 15.2. [Références](#Rfrences)
|
||||
* 3. [3. Documents de référence](#Documentsderfrence)
|
||||
* 3.1. [Worfklows](#Worfklows)
|
||||
* 3.2. [Transverse](#Transverse)
|
||||
* 4. [Authentification des utilisateurs](#Authentificationdesutilisateurs)
|
||||
* 5. [Connexion via des tiers](#Connexionviadestiers)
|
||||
* 6. [Fonctionnalité de récupération de mot de passe](#Fonctionnalitdercuprationdemotdepasse)
|
||||
* 7. [Gestion de session basée sur un cache](#Gestiondesessionbasesuruncache)
|
||||
* 8. [Gestion des clés de l'identité (aussi les clés des transactions SP)](#GestiondesclsdelidentitaussilesclsdestransactionsSP)
|
||||
* 8.1. [Génération des clés privées (création des identités numériques)](#Gnrationdesclsprivescrationdesidentitsnumriques)
|
||||
* 8.1.1. [HD Wallet (BIP32 + BIP44)](#HDWalletBIP32BIP44)
|
||||
* 8.1.2. [Connexions avec une identité crée (`recover`)](#Connexionsavecuneidentitcrerecover)
|
||||
* 9. [Exemples de Code](#ExemplesdeCode)
|
||||
|
||||
<!-- vscode-markdown-toc-config
|
||||
numbering=true
|
||||
@ -37,32 +28,27 @@ Développer un système de login sécurisé utilisant les clés cryptographiques
|
||||
|
||||
Ce système couvrira la conception et le développement de l'architecture d'authentification, incluant la génération, la gestion, et la validation des identités numériques à travers des formats de conformité spécifiques (Portable Contract Document et Portable Request Document). Il intégrera également l'authentification des utilisateurs, la connexion via des tiers, la récupération d'identités, et une gestion de session basée sur un cache avec des contraintes de sécurité renforcées. La solution sera conçue pour des environnements hautement sécurisés, nécessitant une haute disponibilité, performance, et évolutivité.
|
||||
|
||||
## 3. <a name='DfinitionsetAbrviations'></a>Définitions et Abréviations
|
||||
## 3. <a name='Documentsderfrence'></a>3. Documents de référence
|
||||
|
||||
Voir Specs - Définitions et abréviations.
|
||||
### 3.1. <a name='Worfklows'></a>Worfklows
|
||||
|
||||
## 4. <a name='Exigencesdescuritetdeconfidentialit'></a>Exigences de sécurité et de confidentialité
|
||||
* **Items**: Item-Specs.md
|
||||
* **PRD et PCD**: PRD-PCD-Specs.md
|
||||
* **Messages et transactions SP**: Message-SP-Specs.md
|
||||
* **Process et roles**: Process-Role-Specs.md
|
||||
|
||||
Voir Specs - Exigences de sécurité
|
||||
### 3.2. <a name='Transverse'></a>Transverse
|
||||
|
||||
## 5. <a name='Architecturegnrale'></a>Architecture générale
|
||||
* **Définitions et abréviations.**: Specs-Definition.md
|
||||
* **Exigences de sécurité**: Specs-Security.md
|
||||
* **Code**: Specs-Code.md
|
||||
* **Maintenance, environnement de déploiement**: Specs-Deployment.md
|
||||
* **References**: Specs-References.md
|
||||
|
||||
Diagramme d'architecture montrant les composants principaux du système de login.
|
||||
* **Diagramme d'architecture montrant les composants principaux du système de login.**
|
||||
[SheatSheet 4NK](https://cryptpad.fr/diagram/#/2/diagram/view/3UG+7ccutUvJlwJ1-bR40RhgOA+rb5eEmw42wtkN19A)
|
||||
|
||||
## 6. <a name='Spcificationdesitems'></a>Spécification des items
|
||||
|
||||
Voir Item - Specs
|
||||
|
||||
## 7. <a name='Spcificationdesroles'></a>Spécification des roles
|
||||
|
||||
Voir Voir Item - Specs
|
||||
|
||||
## 8. <a name='SpcifiationdesPCDetPRD'></a>Spécifiation des PCD et PRD
|
||||
|
||||
Voir Voir PRD et PCD - Specs
|
||||
|
||||
## 9. <a name='Authentificationdesutilisateurs'></a>Authentification des utilisateurs
|
||||
## 4. <a name='Authentificationdesutilisateurs'></a>Authentification des utilisateurs
|
||||
|
||||
Les utilisateurs doivent pouvoir s'authentifier en utilisant un mot de passe et les données `exif` d'une image dite de login mise en cache dans IndexedDB pour les navigateurs et les applications mobiles, sinon en mémoire pour tous autres dispositifs dont l'IoT et une partie venant de membres choisi par les gestionnaires des membres des `process`.
|
||||
|
||||
@ -72,27 +58,27 @@ Les utilisateurs sont reconnus par une adresse Silent Payment dans un ou plusieu
|
||||
|
||||
Chaque relais permet d'accéder à la liste des process, de créer, recomposer (`recover`) et révoquer (`revoke`) une identité, et de la compléter par process dans lequel l'utilisateur a un rôle (`onboarding`).
|
||||
|
||||
## 10. <a name='Connexionviadestiers'></a>Connexion via des tiers
|
||||
## 5. <a name='Connexionviadestiers'></a>Connexion via des tiers
|
||||
|
||||
Le système offrira la possibilité de se connecter via des services tiers (tels que OAuth2, avec Google, GitHub, etc.), permettant une intégration fluide avec les écosystèmes existants sans dégrader l'expérience utilisateur.
|
||||
|
||||
Pour cela, les flux de 4NK agissent en "proxy" transparent devant les flux API des services concernés, et les tokens d'accès sont ajoutés aux données de `member`.
|
||||
|
||||
## 11. <a name='Fonctionnalitdercuprationdemotdepasse'></a>Fonctionnalité de récupération de mot de passe
|
||||
## 6. <a name='Fonctionnalitdercuprationdemotdepasse'></a>Fonctionnalité de récupération de mot de passe
|
||||
|
||||
En cas d'oubli de mot de passe, les utilisateurs pourront récupérer leur accès depuis une nouvelle identité (`recover`) après avoir révoqué l'ancienne identité, via un processus sécurisé, impliquant une vérification d'identité et l'échange de secrets chiffrés conformément aux protocoles établis.
|
||||
|
||||
Une image de révocation est générée à la création d'une identité pour pouvoir dépenser un UTXO dit alors de révocation, avec les flux PCD et PRD correspondants.
|
||||
|
||||
## 12. <a name='Gestiondesessionbasesuruncache'></a>Gestion de session basée sur un cache
|
||||
## 7. <a name='Gestiondesessionbasesuruncache'></a>Gestion de session basée sur un cache
|
||||
|
||||
Le système ne maintiendra pas de session traditionnelle sur le serveur. La navigation de l'utilisateur persiste grâce à un cache local dans IndexedDB ou en mémoire, avec une politique de sécurité stricte forçant la resaisie du mot de passe après un rafraîchissement de la page ou une inactivité prolongée, déterminée par une durée maximale sans login.
|
||||
|
||||
## 13. <a name='GestiondesclsdelidentitaussilesclsdestransactionsSP'></a>Gestion des clés de l'identité (aussi les clés des transactions SP)
|
||||
## 8. <a name='GestiondesclsdelidentitaussilesclsdestransactionsSP'></a>Gestion des clés de l'identité (aussi les clés des transactions SP)
|
||||
|
||||
### 13.1. <a name='Gnrationdesclsprivescrationdesidentitsnumriques'></a>Génération des clés privées (création des identités numériques)
|
||||
### 8.1. <a name='Gnrationdesclsprivescrationdesidentitsnumriques'></a>Génération des clés privées (création des identités numériques)
|
||||
|
||||
#### 13.1.1. <a name='HDWalletBIP32BIP44'></a>HD Wallet (BIP32 + BIP44)
|
||||
#### 8.1.1. <a name='HDWalletBIP32BIP44'></a>HD Wallet (BIP32 + BIP44)
|
||||
|
||||
Les transactions SP ont besoin de 2 clés privées Bitcoin, l'une critique sur la dépense des jetons, l'autre qui lève la confidentialité (partageable dans certains cas) :
|
||||
|
||||
@ -275,7 +261,7 @@ Ces clés sont générées lors de l'update d'un membre, avec déjà une identit
|
||||
|
||||
Lorsqu'une transaction est reçue sur l'application de 2FA, celle-ci demande de confirmer ou non. Si il y a une confirmation dans l'interface alors une transaction SP est envoyée au dispositif initial, en dépensant l'UTXO reçue et avec les mêmes Hash dans les outputs que la transaction reçue afin que le dispositif initial puisse collecter les PRD concernés.
|
||||
|
||||
#### 13.1.2. <a name='Connexionsavecuneidentitcrerecover'></a>Connexions avec une identité crée (`recover`)
|
||||
#### 8.1.2. <a name='Connexionsavecuneidentitcrerecover'></a>Connexions avec une identité crée (`recover`)
|
||||
|
||||
Comme pour la création de compte, les relais partagent leur liste de relais et de process au setup du SDK (Wasm), ces listes sont stockées en cache sous forme d'objets `SharedPeer` et `SharedProcess`.
|
||||
|
||||
@ -320,28 +306,6 @@ Demande d'update de la liste des membres (PCD) d'un process :
|
||||
4. Création d'une nouvelle version du PCD avec l'ajout de l'`ItemMember` créé.
|
||||
5. Redirection vers la page du process sur le relai.
|
||||
|
||||
#### 13.1.3. <a name='WorkflowdesPRDetPCD'></a>Workflow des PRD et PCD
|
||||
## 9. <a name='ExemplesdeCode'></a>Exemples de Code
|
||||
|
||||
Voir PRD et PCD - Specs.
|
||||
|
||||
#### 13.1.4. <a name='WorkflowdesMessagestransactionsSPetconnexionauxwebsockets'></a>Workflow des Messages, transactions SP et connexion aux web sockets
|
||||
|
||||
Voir Specs - Messages et transactions SP.
|
||||
|
||||
## 14. <a name='Spcificationsducode'></a>Spécifications du code
|
||||
|
||||
Voir Specs - Code
|
||||
|
||||
### 14.1. <a name='Maintenanceenvironnementdedploiement'></a>Maintenance, environnement de déploiement
|
||||
|
||||
Voir Specs - Maintenance, environnement de déploiement
|
||||
|
||||
## 15. <a name='Annexe'></a>Annexe
|
||||
|
||||
### 15.1. <a name='Exemplesdecode'></a>Exemples de code
|
||||
|
||||
Extraits de code illustrant des aspects clés du système de login, tels que le hashing de mot de passe, ou la configuration du middleware de sécurité.
|
||||
|
||||
### 15.2. <a name='Rfrences'></a>Références
|
||||
|
||||
Voir Specs - References
|
||||
Extraits de code illustrant l'utilisation des PCD et PRD dans des scénarios réels.
|
||||
|
@ -1,21 +1,17 @@
|
||||
<!-- vscode-markdown-toc -->
|
||||
* 1. [Objectif](#Objectif)
|
||||
* 2. [Portée](#Porte)
|
||||
* 3. [Définitions et Abréviations](#DfinitionsetAbrviations)
|
||||
* 4. [Exigences de sécurité et de confidentialité](#Exigencesdescuritetdeconfidentialit)
|
||||
* 5. [Architecture générale](#Architecturegnrale)
|
||||
* 5.1. [Types d'Items](#TypesdItems)
|
||||
* 5.2. [Composition et Fonction](#CompositionetFonction)
|
||||
* 5.2.1. [Cas d'utilisation](#Casdutilisation)
|
||||
* 5.3. [MetaData - Gestion des Attributs d'Items](#MetaData-GestiondesAttributsdItems)
|
||||
* 5.3.1. [Composition et Fonction](#CompositionetFonction-1)
|
||||
* 5.3.2. [Cas d'utilisation](#Casdutilisation-1)
|
||||
* 6. [ItemProcess](#ItemProcess)
|
||||
* 7. [Spécifications du code](#Spcificationsducode)
|
||||
* 7.1. [Maintenance, environnement de déploiement](#Maintenanceenvironnementdedploiement)
|
||||
* 8. [Annexe](#Annexe)
|
||||
* 8.1. [Exemples de Code](#ExemplesdeCode)
|
||||
* 8.2. [Références](#Rfrences)
|
||||
* 3. [3. Documents de référence](#Documentsderfrence)
|
||||
* 3.1. [Worfklows](#Worfklows)
|
||||
* 3.2. [Transverse](#Transverse)
|
||||
* 3.3. [Types d'Items](#TypesdItems)
|
||||
* 3.4. [Composition et Fonction](#CompositionetFonction)
|
||||
* 3.4.1. [Cas d'utilisation](#Casdutilisation)
|
||||
* 3.5. [MetaData - Gestion des Attributs d'Items](#MetaData-GestiondesAttributsdItems)
|
||||
* 3.5.1. [Composition et Fonction](#CompositionetFonction-1)
|
||||
* 3.5.2. [Cas d'utilisation](#Casdutilisation-1)
|
||||
* 4. [ItemProcess](#ItemProcess)
|
||||
* 5. [Exemples de Code](#ExemplesdeCode)
|
||||
|
||||
<!-- vscode-markdown-toc-config
|
||||
numbering=true
|
||||
@ -27,20 +23,27 @@
|
||||
|
||||
## 2. <a name='Porte'></a>Portée
|
||||
|
||||
## 3. <a name='DfinitionsetAbrviations'></a>Définitions et Abréviations
|
||||
## 3. <a name='Documentsderfrence'></a>3. Documents de référence
|
||||
|
||||
Voir Specs - Définitions et abréviations.
|
||||
### 3.1. <a name='Worfklows'></a>Worfklows
|
||||
|
||||
## 4. <a name='Exigencesdescuritetdeconfidentialit'></a>Exigences de sécurité et de confidentialité
|
||||
* **Authentification**: Auth-Specs.md
|
||||
* **PRD et PCD**: PRD-PCD-Specs.md
|
||||
* **Messages et transactions SP**: Message-SP-Specs.md
|
||||
* **Process et roles**: Process-Role-Specs.md
|
||||
|
||||
Voir Specs - Exigences de sécurité
|
||||
### 3.2. <a name='Transverse'></a>Transverse
|
||||
|
||||
## 5. <a name='Architecturegnrale'></a>Architecture générale
|
||||
* **Définitions et abréviations.**: Specs-Definition.md
|
||||
* **Exigences de sécurité**: Specs-Security.md
|
||||
* **Code**: Specs-Code.md
|
||||
* **Maintenance, environnement de déploiement**: Specs-Deployment.md
|
||||
* **References**: Specs-References.md
|
||||
|
||||
Diagramme d'architecture montrant les composants principaux du système de login.
|
||||
* **Diagramme d'architecture montrant les composants principaux du système de login.**
|
||||
[SheatSheet 4NK](https://cryptpad.fr/diagram/#/2/diagram/view/3UG+7ccutUvJlwJ1-bR40RhgOA+rb5eEmw42wtkN19A)
|
||||
|
||||
### 5.1. <a name='TypesdItems'></a>Types d'Items
|
||||
### 3.3. <a name='TypesdItems'></a>Types d'Items
|
||||
|
||||
Dans le système 4NK, les items représentent les entités ou les objets appelés `Item` sur lesquels les transactions, les processus, et les interactions sont basés. Les types d'`items` incluent :
|
||||
|
||||
@ -50,7 +53,7 @@ Dans le système 4NK, les items représentent les entités ou les objets appelé
|
||||
* **Artefact** : Un type d'objet générique personnalisable dans les `process`, il peut y avoir une quantité infinie de type d'`artefacts` différents par process.
|
||||
* **Payment, Deposit, Commitment**: Représentent divers types de transactions ou d'engagements au sein du réseau, avec des règles et des attributs spécifiques.
|
||||
|
||||
### 5.2. <a name='CompositionetFonction'></a> Composition et Fonction
|
||||
### 3.4. <a name='CompositionetFonction'></a> Composition et Fonction
|
||||
|
||||
* **uuid**: Identifiant unique de l'item, assurant sa traçabilité et son unicité au sein du système.
|
||||
* **version**: Numéro de version de l'item, facilitant le suivi des mises à jour et des modifications.
|
||||
@ -60,44 +63,30 @@ Dans le système 4NK, les items représentent les entités ou les objets appelé
|
||||
* **pagination_number_per_pcd**: Détermine comment l'item est paginé ou divisé dans le contexte des PCD, affectant la manière dont il est présenté ou accessible.
|
||||
* **metadata**: Comprend MetadataContractPublic, MetadataRoleConfidential, et MetadataPrivate, encapsulant les attributs de l'item selon différents niveaux de confidentialité.
|
||||
|
||||
#### 5.2.1. <a name='Casdutilisation'></a>Cas d'utilisation
|
||||
#### 3.4.1. <a name='Casdutilisation'></a>Cas d'utilisation
|
||||
|
||||
Les items sont utilisés pour tout, depuis la représentation des participants et des ressources dans le système jusqu'à la structuration des contrats et des processus. Ils sont essentiels pour organiser et gérer efficacement les données et les interactions au sein du réseau 4NK.
|
||||
|
||||
### 5.3. <a name='MetaData-GestiondesAttributsdItems'></a>MetaData - Gestion des Attributs d'Items
|
||||
### 3.5. <a name='MetaData-GestiondesAttributsdItems'></a>MetaData - Gestion des Attributs d'Items
|
||||
|
||||
La structure MetaData joue un rôle crucial dans la définition des attributs et des caractéristiques des items, enrichissant leur définition et leur utilité au sein du système.
|
||||
|
||||
#### 5.3.1. <a name='CompositionetFonction-1'></a>Composition et Fonction
|
||||
#### 3.5.1. <a name='CompositionetFonction-1'></a>Composition et Fonction
|
||||
|
||||
* **tag_list**, **zone_list**, **label_list**, **ref_list**, **data_list**: Collections d'étiquettes, zones, labels, références, et données associées à l'item, permettant une classification et une organisation détaillées.
|
||||
* **amount**, **number**: Champs numériques pour représenter des quantités ou des valeurs associées à l'item, utilisés dans divers contextes comme le suivi des ressources ou la définition des conditions.
|
||||
* **render_template_list**, **legal_text_list**: Fournissent des templates pour la présentation de l'item et des textes légaux associés, cruciaux pour la documentation et la conformité.
|
||||
* **key_list**: Liste des clés de chiffrement ou d'autres clés cryptographiques associées à l'item, essentielles pour la sécurité et l'authentification.
|
||||
|
||||
#### 5.3.2. <a name='Casdutilisation-1'></a>Cas d'utilisation
|
||||
#### 3.5.2. <a name='Casdutilisation-1'></a>Cas d'utilisation
|
||||
|
||||
La richesse et la diversité des métadonnées permettent une personnalisation et une spécification précises des items, soutenant des processus complexes, des contrats détaillés, et des interactions sécurisées au sein du réseau.
|
||||
|
||||
## 6. <a name='ItemProcess'></a>ItemProcess
|
||||
## 4. <a name='ItemProcess'></a>ItemProcess
|
||||
|
||||
* **item**: Base de l'ItemProcess, liant les processus aux items spécifiques au sein du système.
|
||||
* **item_process_public_attribute_group**: Groupe d'attributs publics associés à un processus, définissant les règles, les rôles et les conditions d'exécution du processus.
|
||||
|
||||
## 7. <a name='Spcificationsducode'></a>Spécifications du code
|
||||
|
||||
Voir Specs - Code
|
||||
|
||||
### 7.1. <a name='Maintenanceenvironnementdedploiement'></a>Maintenance, environnement de déploiement
|
||||
|
||||
Voir Specs - Maintenance, environnement de déploiement
|
||||
|
||||
## 8. <a name='Annexe'></a>Annexe
|
||||
|
||||
### 8.1. <a name='ExemplesdeCode'></a>Exemples de Code
|
||||
## 5. <a name='ExemplesdeCode'></a>Exemples de Code
|
||||
|
||||
Extraits de code illustrant l'utilisation des PCD et PRD dans des scénarios réels.
|
||||
|
||||
### 8.2. <a name='Rfrences'></a>Références
|
||||
|
||||
Voir Specs - References
|
||||
|
@ -1,25 +1,19 @@
|
||||
<!-- vscode-markdown-toc -->
|
||||
* 1. [Objectif](#Objectif)
|
||||
* 2. [Portée](#Porte)
|
||||
* 3. [Définitions et Abréviations](#DfinitionsetAbrviations)
|
||||
* 4. [Exigences de sécurité et de confidentialité](#Exigencesdescuritetdeconfidentialit)
|
||||
* 5. [Architecture générale](#Architecturegnrale)
|
||||
* 6. [Spécification des items](#Spcificationdesitems)
|
||||
* 7. [Spécification des process et roles](#Spcificationdesprocessetroles)
|
||||
* 7.1. [Structure des PCD et PRD et de leur attribut générique Request](#StructuredesPCDetPRDetdeleurattributgnriqueRequest)
|
||||
* 7.2. [Structure et Fonction des PCD](#StructureetFonctiondesPCD)
|
||||
* 7.2.1. [Structure de Base d'un PCD](#StructuredeBasedunPCD)
|
||||
* 7.2.2. [L'attribut des listes PcdItemGenericEnc `item_list`](#LattributdeslistesPcdItemGenericEncitem_list)
|
||||
* 7.3. [Types de PRD et Leur Fonction](#TypesdePRDetLeurFonction)
|
||||
* 7.3.1. [Structure de RequestPrd](#StructuredeRequestPrd)
|
||||
* 8. [Gestion et Échange des Documents](#GestionetchangedesDocuments)
|
||||
* 8.1. [Création et Distribution](#CrationetDistribution)
|
||||
* 8.2. [Validation et Mise à Jour](#ValidationetMiseJour)
|
||||
* 9. [Spécifications du code](#Spcificationsducode)
|
||||
* 9.1. [Maintenance, environnement de déploiement](#Maintenanceenvironnementdedploiement)
|
||||
* 10. [Annexe](#Annexe)
|
||||
* 10.1. [Exemples de Code](#ExemplesdeCode)
|
||||
* 10.2. [Références](#Rfrences)
|
||||
* 3. [3. Documents de référence](#Documentsderfrence)
|
||||
* 3.1. [Worfklows](#Worfklows)
|
||||
* 3.2. [Transverse](#Transverse)
|
||||
* 3.3. [Structure des PCD et PRD et de leur attribut générique Request](#StructuredesPCDetPRDetdeleurattributgnriqueRequest)
|
||||
* 3.4. [Structure et Fonction des PCD](#StructureetFonctiondesPCD)
|
||||
* 3.4.1. [Structure de Base d'un PCD](#StructuredeBasedunPCD)
|
||||
* 3.4.2. [L'attribut des listes PcdItemGenericEnc `item_list`](#LattributdeslistesPcdItemGenericEncitem_list)
|
||||
* 3.5. [Types de PRD et Leur Fonction](#TypesdePRDetLeurFonction)
|
||||
* 3.5.1. [Structure de RequestPrd](#StructuredeRequestPrd)
|
||||
* 4. [Gestion et Échange des Documents](#GestionetchangedesDocuments)
|
||||
* 4.1. [Création et Distribution](#CrationetDistribution)
|
||||
* 4.2. [Validation et Mise à Jour](#ValidationetMiseJour)
|
||||
* 5. [Exemples de Code](#ExemplesdeCode)
|
||||
|
||||
<!-- vscode-markdown-toc-config
|
||||
numbering=true
|
||||
@ -35,28 +29,27 @@ Le but de cette section est d'introduire les Portable Contract Document (PCD) et
|
||||
|
||||
La spécification couvre la conception, le développement, et l'application pratique des PCD et PRD. Elle vise à expliquer leur fonctionnement, leur structure, et la manière dont ils contribuent à l'écosystème 4NK en offrant une méthode sécurisée et efficace pour le partage d'informations et la validation des transactions. Les PCD et PRD encapsulent les données contractuelles et les requêtes dans un format standardisé, assurant l'intégrité, la confidentialité, l'authenticité et la validation des informations échangées.
|
||||
|
||||
## 3. <a name='DfinitionsetAbrviations'></a>Définitions et Abréviations
|
||||
## 3. <a name='Documentsderfrence'></a>3. Documents de référence
|
||||
|
||||
Voir Specs - Définitions et abréviations.
|
||||
### 3.1. <a name='Worfklows'></a>Worfklows
|
||||
|
||||
## 4. <a name='Exigencesdescuritetdeconfidentialit'></a>Exigences de sécurité et de confidentialité
|
||||
* **Authentification**: Auth-Specs.md
|
||||
* **Items**: Item-Specs.md
|
||||
* **Messages et transactions SP**: Message-SP-Specs.md
|
||||
* **Process et roles**: Process-Role-Specs.md
|
||||
|
||||
Voir Specs - Exigences de sécurité
|
||||
### 3.2. <a name='Transverse'></a>Transverse
|
||||
|
||||
## 5. <a name='Architecturegnrale'></a>Architecture générale
|
||||
* **Définitions et abréviations.**: Specs-Definition.md
|
||||
* **Exigences de sécurité**: Specs-Security.md
|
||||
* **Code**: Specs-Code.md
|
||||
* **Maintenance, environnement de déploiement**: Specs-Deployment.md
|
||||
* **References**: Specs-References.md
|
||||
|
||||
Diagramme d'architecture montrant les composants principaux du système de login.
|
||||
* **Diagramme d'architecture montrant les composants principaux du système de login.**
|
||||
[SheatSheet 4NK](https://cryptpad.fr/diagram/#/2/diagram/view/3UG+7ccutUvJlwJ1-bR40RhgOA+rb5eEmw42wtkN19A)
|
||||
|
||||
## 6. <a name='Spcificationdesitems'></a>Spécification des items
|
||||
|
||||
Voir Item - Specs
|
||||
|
||||
## 7. <a name='Spcificationdesprocessetroles'></a>Spécification des process et roles
|
||||
|
||||
Voir Voir Item - Specs
|
||||
|
||||
### 7.1. <a name='StructuredesPCDetPRDetdeleurattributgnriqueRequest'></a>Structure des PCD et PRD et de leur attribut générique Request
|
||||
### 3.3. <a name='StructuredesPCDetPRDetdeleurattributgnriqueRequest'></a>Structure des PCD et PRD et de leur attribut générique Request
|
||||
|
||||
La structure Request joue un rôle central dans la création des `PRD` et des `PCD`, servant de fondement pour formuler des demandes au sein du système 4NK.
|
||||
|
||||
@ -70,15 +63,15 @@ Il contient les attributs suivants :
|
||||
* **process_hash**: Référence au hash du processus ItemProcess concerné, établissant le contexte de la demande.
|
||||
* **pcd_reference_hash et item_reference_hash**: Optionnels, fournissent des références aux PCD ou items spécifiques concernés par la demande.
|
||||
|
||||
### 7.2. <a name='StructureetFonctiondesPCD'></a>Structure et Fonction des PCD
|
||||
### 3.4. <a name='StructureetFonctiondesPCD'></a>Structure et Fonction des PCD
|
||||
|
||||
#### 7.2.1. <a name='StructuredeBasedunPCD'></a>Structure de Base d'un PCD
|
||||
#### 3.4.1. <a name='StructuredeBasedunPCD'></a>Structure de Base d'un PCD
|
||||
|
||||
`Item`: Chaque `PCD` est associé à un type d'`item` spécifique, définissant le contexte et la portée des informations qu'il contient.
|
||||
|
||||
`MetadataContractPublic`, `MetadataRoleConfidential`, `MetadataPrivate`: Ces métadonnées encapsulent les attributs des `items` au sein du `PCD`, classés selon leur niveau de confidentialité. Les métadonnées au sein des PCD jouent un rôle crucial en définissant le niveau de confidentialité et d'accès aux informations contractuelles. Elles permettent une segmentation claire des données selon qui peut y accéder et comment elles peuvent être utilisées.
|
||||
|
||||
#### 7.2.2. <a name='LattributdeslistesPcdItemGenericEncitem_list'></a>L'attribut des listes PcdItemGenericEnc `item_list`
|
||||
#### 3.4.2. <a name='LattributdeslistesPcdItemGenericEncitem_list'></a>L'attribut des listes PcdItemGenericEnc `item_list`
|
||||
|
||||
Chaque Item dit "Enc" pour chiffré est une représentation d'un objet de type `Item` mais avec les attributs chiffrés.
|
||||
|
||||
@ -91,13 +84,13 @@ Ainsi voici la composition d'un item chiffré :
|
||||
|
||||
Voir Specs - Exigences de sécurité pour le détail des niveaux de sécurité.
|
||||
|
||||
### 7.3. <a name='TypesdePRDetLeurFonction'></a>Types de PRD et Leur Fonction
|
||||
### 3.5. <a name='TypesdePRDetLeurFonction'></a>Types de PRD et Leur Fonction
|
||||
|
||||
`RequestPrd`: Structure de base pour toutes les demandes, contenant des informations chiffrées essentielles pour l'interaction sécurisée entre les parties.
|
||||
|
||||
`RequestPrdList`, `RequestPrdMessage`, `RequestPrdUpdate`, etc.: Variations de `PRD` pour différentes actions, telles que l'envoi de messages, la mise à jour des informations contractuelles, ou la confirmation de transactions.
|
||||
|
||||
#### 7.3.1. <a name='StructuredeRequestPrd'></a>Structure de RequestPrd
|
||||
#### 3.5.1. <a name='StructuredeRequestPrd'></a>Structure de RequestPrd
|
||||
|
||||
La structure RequestPrd sert de fondement pour tous les types de PRD, contenant les éléments suivants :
|
||||
|
||||
@ -224,30 +217,16 @@ Basé sur le `RequestPrd`, complété par :
|
||||
|
||||
Important pour les processus d'onboarding de nouveaux membres, de réinitialisation des accès, ou de renouvellement des clés, facilitant une intégration sécurisée et la mise à jour des identités dans le réseau.
|
||||
|
||||
## 8. <a name='GestionetchangedesDocuments'></a>Gestion et Échange des Documents
|
||||
## 4. <a name='GestionetchangedesDocuments'></a>Gestion et Échange des Documents
|
||||
|
||||
### 8.1. <a name='CrationetDistribution'></a>Création et Distribution
|
||||
### 4.1. <a name='CrationetDistribution'></a>Création et Distribution
|
||||
|
||||
Procédure de création des PCD et PRD, leur chiffrement, et les mécanismes de distribution sécurisée à travers le réseau 4NK.
|
||||
|
||||
### 8.2. <a name='ValidationetMiseJour'></a>Validation et Mise à Jour
|
||||
### 4.2. <a name='ValidationetMiseJour'></a>Validation et Mise à Jour
|
||||
|
||||
Processus de validation des informations contenues dans les PCD et PRD, ainsi que les procédures de mise à jour et de versioning des documents.
|
||||
|
||||
## 9. <a name='Spcificationsducode'></a>Spécifications du code
|
||||
|
||||
Voir Specs - Code
|
||||
|
||||
### 9.1. <a name='Maintenanceenvironnementdedploiement'></a>Maintenance, environnement de déploiement
|
||||
|
||||
Voir Specs - Maintenance, environnement de déploiement
|
||||
|
||||
## 10. <a name='Annexe'></a>Annexe
|
||||
|
||||
### 10.1. <a name='ExemplesdeCode'></a>Exemples de Code
|
||||
## 5. <a name='ExemplesdeCode'></a>Exemples de Code
|
||||
|
||||
Extraits de code illustrant l'utilisation des PCD et PRD dans des scénarios réels.
|
||||
|
||||
### 10.2. <a name='Rfrences'></a>Références
|
||||
|
||||
Voir Specs - References
|
||||
|
@ -1,34 +1,30 @@
|
||||
<!-- vscode-markdown-toc -->
|
||||
* 1. [Objectif](#Objectif)
|
||||
* 2. [Portée](#Porte)
|
||||
* 3. [Définitions et Abréviations](#DfinitionsetAbrviations)
|
||||
* 4. [Exigences de sécurité et de confidentialité](#Exigencesdescuritetdeconfidentialit)
|
||||
* 5. [Architecture générale](#Architecturegnrale)
|
||||
* 6. [Rôles et Sous-Rôles](#RlesetSous-Rles)
|
||||
* 7. [Précisions sur les rôles](#Prcisionssurlesrles)
|
||||
* 7.1. [RolesGroup - Gestion des Rôles](#RolesGroup-GestiondesRles)
|
||||
* 7.1.1. [Composition et Fonction](#CompositionetFonction)
|
||||
* 7.1.2. [Cas d'utilisation](#Casdutilisation)
|
||||
* 7.2. [TransactionModeDistribution et TransactionModeDirect](#TransactionModeDistributionetTransactionModeDirect)
|
||||
* 7.3. [TransactionModeDistribution](#TransactionModeDistribution)
|
||||
* 7.3.1. [TransactionModeDirect](#TransactionModeDirect)
|
||||
* 7.4. [Cas d'utilisation](#Casdutilisation-1)
|
||||
* 7.4.1. [Composition et Fonction](#CompositionetFonction-1)
|
||||
* 7.4.2. [Cas d'utilisation](#Casdutilisation-1)
|
||||
* 7.5. [Role - Définition et Gestion des Rôles Spécifiques](#Role-DfinitionetGestiondesRlesSpcifiques)
|
||||
* 7.5.1. [Composition et Fonction](#CompositionetFonction-1)
|
||||
* 7.5.2. [Cas d'utilisation](#Casdutilisation-1)
|
||||
* 8. [Gestion des Engagements et Transactions](#GestiondesEngagementsetTransactions)
|
||||
* 8.1. [RoleCommitment](#RoleCommitment)
|
||||
* 8.2. [RoleDeposit et RolePayment](#RoleDepositetRolePayment)
|
||||
* 9. [Sécurisation des Communications](#ScurisationdesCommunications)
|
||||
* 9.1. [Composition et Utilisation](#CompositionetUtilisation)
|
||||
* 10. [Intégration et Orchestration des Processus](#IntgrationetOrchestrationdesProcessus)
|
||||
* 11. [Spécifications du code](#Spcificationsducode)
|
||||
* 11.1. [Maintenance, environnement de déploiement](#Maintenanceenvironnementdedploiement)
|
||||
* 12. [Annexe](#Annexe)
|
||||
* 12.1. [Exemples de Code](#ExemplesdeCode)
|
||||
* 12.2. [Références](#Rfrences)
|
||||
* 3. [3. Documents de référence](#Documentsderfrence)
|
||||
* 3.1. [Worfklows](#Worfklows)
|
||||
* 3.2. [Transverse](#Transverse)
|
||||
* 4. [Rôles et Sous-Rôles](#RlesetSous-Rles)
|
||||
* 5. [Précisions sur les rôles](#Prcisionssurlesrles)
|
||||
* 5.1. [RolesGroup - Gestion des Rôles](#RolesGroup-GestiondesRles)
|
||||
* 5.1.1. [Composition et Fonction](#CompositionetFonction)
|
||||
* 5.1.2. [Cas d'utilisation](#Casdutilisation)
|
||||
* 5.2. [TransactionModeDistribution et TransactionModeDirect](#TransactionModeDistributionetTransactionModeDirect)
|
||||
* 5.3. [TransactionModeDistribution](#TransactionModeDistribution)
|
||||
* 5.3.1. [TransactionModeDirect](#TransactionModeDirect)
|
||||
* 5.4. [Cas d'utilisation](#Casdutilisation-1)
|
||||
* 5.4.1. [Composition et Fonction](#CompositionetFonction-1)
|
||||
* 5.4.2. [Cas d'utilisation](#Casdutilisation-1)
|
||||
* 5.5. [Role - Définition et Gestion des Rôles Spécifiques](#Role-DfinitionetGestiondesRlesSpcifiques)
|
||||
* 5.5.1. [Composition et Fonction](#CompositionetFonction-1)
|
||||
* 5.5.2. [Cas d'utilisation](#Casdutilisation-1)
|
||||
* 6. [Gestion des Engagements et Transactions](#GestiondesEngagementsetTransactions)
|
||||
* 6.1. [RoleCommitment](#RoleCommitment)
|
||||
* 6.2. [RoleDeposit et RolePayment](#RoleDepositetRolePayment)
|
||||
* 7. [Sécurisation des Communications](#ScurisationdesCommunications)
|
||||
* 7.1. [Composition et Utilisation](#CompositionetUtilisation)
|
||||
* 8. [Intégration et Orchestration des Processus](#IntgrationetOrchestrationdesProcessus)
|
||||
* 9. [Exemples de Code](#ExemplesdeCode)
|
||||
|
||||
<!-- vscode-markdown-toc-config
|
||||
numbering=true
|
||||
@ -36,68 +32,73 @@
|
||||
/vscode-markdown-toc-config -->
|
||||
<!-- /vscode-markdown-toc --># Process et roles
|
||||
|
||||
|
||||
|
||||
## 1. <a name='Objectif'></a>Objectif
|
||||
|
||||
Cette section vise à présenter en détail les Documents de Contrat Portable (PCD) et les Documents de Demande Portable (PRD), qui constituent les piliers du système 4NK. Essentiels pour sécuriser les transactions de données et gérer les identités numériques, les PCD et PRD assurent l'intégrité et la confidentialité au cœur d'un réseau décentralisé.
|
||||
|
||||
## 2. <a name='Porte'></a>Portée
|
||||
|
||||
## 3. <a name='DfinitionsetAbrviations'></a>Définitions et Abréviations
|
||||
## 3. <a name='Documentsderfrence'></a>3. Documents de référence
|
||||
|
||||
Voir Specs - Définitions et abréviations.
|
||||
### 3.1. <a name='Worfklows'></a>Worfklows
|
||||
|
||||
## 4. <a name='Exigencesdescuritetdeconfidentialit'></a>Exigences de sécurité et de confidentialité
|
||||
* **Authentification**: Auth-Specs.md
|
||||
* **Items**: Item-Specs.md
|
||||
* **Messages et transactions SP**: Message-SP-Specs.md
|
||||
* **PRD et PCD**: PRD-PCD-Specs.md
|
||||
|
||||
Voir Specs - Exigences de sécurité
|
||||
### 3.2. <a name='Transverse'></a>Transverse
|
||||
|
||||
## 5. <a name='Architecturegnrale'></a>Architecture générale
|
||||
* **Définitions et abréviations.**: Specs-Definition.md
|
||||
* **Exigences de sécurité**: Specs-Security.md
|
||||
* **Code**: Specs-Code.md
|
||||
* **Maintenance, environnement de déploiement**: Specs-Deployment.md
|
||||
* **References**: Specs-References.md
|
||||
|
||||
Diagramme d'architecture montrant les composants principaux du système de login.
|
||||
* **Diagramme d'architecture montrant les composants principaux du système de login.**
|
||||
[SheatSheet 4NK](https://cryptpad.fr/diagram/#/2/diagram/view/3UG+7ccutUvJlwJ1-bR40RhgOA+rb5eEmw42wtkN19A)
|
||||
|
||||
## 6. <a name='RlesetSous-Rles'></a>Rôles et Sous-Rôles
|
||||
## 4. <a name='RlesetSous-Rles'></a>Rôles et Sous-Rôles
|
||||
|
||||
Les rôles déterminent les permissions et les responsabilités des participants dans le système 4NK. Ils sont essentiels pour contrôler l'accès aux données et les autorisations au sein des `process`. Les `rôles` principaux incluent :
|
||||
|
||||
- **RolePeer**: Conditions des listes de relais participants qui facilitent les communications et les transactions et des versions de ces listes.
|
||||
- **RoleMember**: Conditions des listes des utilisateurs ou entités ayant une participation directe dans un processus spécifique et des versions de ces listes.
|
||||
- **RoleProcess**: Conditions des listes des processus et des versions des listes.
|
||||
- **RoleArtefact**: Définit les permissions et les interactions pour les artefacts au sein du réseau et des version de ces listes, par types d'artefacts.
|
||||
* **RolePeer**: Conditions des listes de relais participants qui facilitent les communications et les transactions et des versions de ces listes.
|
||||
* **RoleMember**: Conditions des listes des utilisateurs ou entités ayant une participation directe dans un processus spécifique et des versions de ces listes.
|
||||
* **RoleProcess**: Conditions des listes des processus et des versions des listes.
|
||||
* **RoleArtefact**: Définit les permissions et les interactions pour les artefacts au sein du réseau et des version de ces listes, par types d'artefacts.
|
||||
|
||||
Chaque rôle peut comporter des sous-rôles spécifiques, tels que `RolePayment`, `RoleDeposit`, et `RoleCommitment`, chacun avec des responsabilités et des interactions uniques dans le cadre des processus qu'ils soutiennent.
|
||||
|
||||
## 7. <a name='Prcisionssurlesrles'></a>Précisions sur les rôles
|
||||
## 5. <a name='Prcisionssurlesrles'></a>Précisions sur les rôles
|
||||
|
||||
### 7.1. <a name='RolesGroup-GestiondesRles'></a>RolesGroup - Gestion des Rôles
|
||||
### 5.1. <a name='RolesGroup-GestiondesRles'></a>RolesGroup - Gestion des Rôles
|
||||
|
||||
La structure RolesGroup est essentielle pour définir et gérer les groupes de rôles au sein du système 4NK, permettant une organisation claire des permissions et des responsabilités.
|
||||
|
||||
#### 7.1.1. <a name='CompositionetFonction'></a>Composition et Fonction
|
||||
#### 5.1.1. <a name='CompositionetFonction'></a>Composition et Fonction
|
||||
|
||||
- **role_peer**: Définit le rôle des pairs dans le réseau, responsables de la facilitation des communications et des transactions.
|
||||
- **role_member**: Spécifie le rôle des membres, ou utilisateurs, qui participent activement dans les processus et les interactions.
|
||||
- **role_process**: Représente les entités chargées de définir et de gérer les processus au sein du système.
|
||||
- **role_artefact_list**: Une liste de rôles d'artefacts, permettant la personnalisation et l'extension des fonctionnalités et des interactions au-delà des rôles standards.
|
||||
* **role_peer**: Définit le rôle des pairs dans le réseau, responsables de la facilitation des communications et des transactions.
|
||||
* **role_member**: Spécifie le rôle des membres, ou utilisateurs, qui participent activement dans les processus et les interactions.
|
||||
* **role_process**: Représente les entités chargées de définir et de gérer les processus au sein du système.
|
||||
* **role_artefact_list**: Une liste de rôles d'artefacts, permettant la personnalisation et l'extension des fonctionnalités et des interactions au-delà des rôles standards.
|
||||
|
||||
#### 7.1.2. <a name='Casdutilisation'></a>Cas d'utilisation
|
||||
#### 5.1.2. <a name='Casdutilisation'></a>Cas d'utilisation
|
||||
|
||||
Cette structure permet une gestion flexible des rôles au sein du système, facilitant l'assignation de permissions spécifiques et la délimitation des responsabilités pour une sécurité et une efficacité accrues.
|
||||
|
||||
### 7.2. <a name='TransactionModeDistributionetTransactionModeDirect'></a>TransactionModeDistribution et TransactionModeDirect
|
||||
### 5.2. <a name='TransactionModeDistributionetTransactionModeDirect'></a>TransactionModeDistribution et TransactionModeDirect
|
||||
|
||||
Les modes de transaction, tels que TransactionModeDistribution et TransactionModeDirect, déterminent comment les demandes et les réponses sont distribuées et traitées au sein du réseau 4NK, influençant l'efficacité et la sécurité des interactions.
|
||||
|
||||
### 7.3. <a name='TransactionModeDistribution'></a>TransactionModeDistribution
|
||||
### 5.3. <a name='TransactionModeDistribution'></a>TransactionModeDistribution
|
||||
|
||||
Permet la distribution des demandes ou des informations à plusieurs rôles ou entités, facilitant une communication large et la collaboration au sein du système.
|
||||
|
||||
#### 7.3.1. <a name='TransactionModeDirect'></a>TransactionModeDirect
|
||||
#### 5.3.1. <a name='TransactionModeDirect'></a>TransactionModeDirect
|
||||
|
||||
Concentre l'échange d'informations ou de demandes directement entre un émetteur et un destinataire spécifique, garantissant une interaction ciblée et sécurisée.
|
||||
|
||||
### 7.4. <a name='Casdutilisation-1'></a>Cas d'utilisation
|
||||
### 5.4. <a name='Casdutilisation-1'></a>Cas d'utilisation
|
||||
|
||||
Ces modes supportent divers scénarios de communication, de la diffusion large d'informations ou de mises à jour, à des échanges directs pour des opérations spécifiques, offrant ainsi une flexibilité dans la gestion des flux d'informations.
|
||||
|
||||
@ -105,73 +106,58 @@ Ces modes supportent divers scénarios de communication, de la diffusion large d
|
||||
|
||||
La structure Role est fondamentale pour définir les caractéristiques et les exigences de chaque rôle au sein du système 4NK, y compris les permissions, les validations nécessaires, et les conditions spécifiques d'utilisation.
|
||||
|
||||
#### 7.4.1. <a name='CompositionetFonction-1'></a>Composition et Fonction
|
||||
#### 5.4.1. <a name='CompositionetFonction-1'></a>Composition et Fonction
|
||||
|
||||
- **item**: L'entité ou l'objet auquel le rôle est associé, fournissant un contexte pour les permissions et les actions.
|
||||
- **required_2fa**: Indique si une authentification à deux facteurs est requise pour ce rôle, augmentant la sécurité pour les actions critiques.
|
||||
- **validation_timeout**: Définit un délai pour la validation des actions ou des demandes associées à ce rôle, assurant la promptitude et l'efficacité des processus.
|
||||
- **condition**: Ensemble de critères et de règles définissant comment les actions sont validées, exécutées, ou refusées selon le contexte.
|
||||
* **item**: L'entité ou l'objet auquel le rôle est associé, fournissant un contexte pour les permissions et les actions.
|
||||
* **required_2fa**: Indique si une authentification à deux facteurs est requise pour ce rôle, augmentant la sécurité pour les actions critiques.
|
||||
* **validation_timeout**: Définit un délai pour la validation des actions ou des demandes associées à ce rôle, assurant la promptitude et l'efficacité des processus.
|
||||
* **condition**: Ensemble de critères et de règles définissant comment les actions sont validées, exécutées, ou refusées selon le contexte.
|
||||
|
||||
#### 7.4.2. <a name='Casdutilisation-1'></a>Cas d'utilisation
|
||||
#### 5.4.2. <a name='Casdutilisation-1'></a>Cas d'utilisation
|
||||
|
||||
Cette structure permet une personnalisation détaillée des rôles au sein du système, assurant que chaque rôle est équipé des permissions et des contraintes appropriées pour sa fonction spécifique, contribuant à la sécurité et à l'ordre du système global.
|
||||
|
||||
### 7.5. <a name='Role-DfinitionetGestiondesRlesSpcifiques'></a>Role - Définition et Gestion des Rôles Spécifiques
|
||||
### 5.5. <a name='Role-DfinitionetGestiondesRlesSpcifiques'></a>Role - Définition et Gestion des Rôles Spécifiques
|
||||
|
||||
La structure Role est fondamentale pour définir les caractéristiques et les exigences de chaque rôle au sein du système 4NK, y compris les permissions, les validations nécessaires, et les conditions spécifiques d'utilisation.
|
||||
|
||||
#### 7.5.1. <a name='CompositionetFonction-1'></a>Composition et Fonction
|
||||
#### 5.5.1. <a name='CompositionetFonction-1'></a>Composition et Fonction
|
||||
|
||||
- **item**: L'entité ou l'objet auquel le rôle est associé, fournissant un contexte pour les permissions et les actions.
|
||||
- **required_2fa**: Indique si une authentification à deux facteurs est requise pour ce rôle, augmentant la sécurité pour les actions critiques.
|
||||
- **validation_timeout**: Définit un délai pour la validation des actions ou des demandes associées à ce rôle, assurant la promptitude et l'efficacité des processus.
|
||||
- **condition**: Ensemble de critères et de règles définissant comment les actions sont validées, exécutées, ou refusées selon le contexte.
|
||||
* **item**: L'entité ou l'objet auquel le rôle est associé, fournissant un contexte pour les permissions et les actions.
|
||||
* **required_2fa**: Indique si une authentification à deux facteurs est requise pour ce rôle, augmentant la sécurité pour les actions critiques.
|
||||
* **validation_timeout**: Définit un délai pour la validation des actions ou des demandes associées à ce rôle, assurant la promptitude et l'efficacité des processus.
|
||||
* **condition**: Ensemble de critères et de règles définissant comment les actions sont validées, exécutées, ou refusées selon le contexte.
|
||||
|
||||
#### 7.5.2. <a name='Casdutilisation-1'></a>Cas d'utilisation
|
||||
#### 5.5.2. <a name='Casdutilisation-1'></a>Cas d'utilisation
|
||||
|
||||
Cette structure permet une personnalisation détaillée des rôles au sein du système, assurant que chaque rôle est équipé des permissions et des contraintes appropriées pour sa fonction spécifique, contribuant à la sécurité et à l'ordre du système global.
|
||||
|
||||
## 8. <a name='GestiondesEngagementsetTransactions'></a>Gestion des Engagements et Transactions
|
||||
## 6. <a name='GestiondesEngagementsetTransactions'></a>Gestion des Engagements et Transactions
|
||||
|
||||
Les engagements dans le système 4NK, tels que représentés par les structures RoleCommitment, RoleDeposit, et RolePayment, jouent un rôle crucial dans la formalisation des transactions et des obligations entre les parties.
|
||||
|
||||
### 8.1. <a name='RoleCommitment'></a>RoleCommitment
|
||||
### 6.1. <a name='RoleCommitment'></a>RoleCommitment
|
||||
|
||||
- **item_name**: Identifie l'engagement spécifique ou l'obligation prise par une partie.
|
||||
- **role**: Définit les permissions, les conditions et les critères associés à cet engagement, assurant une exécution et une validation conformes aux attentes.
|
||||
* **item_name**: Identifie l'engagement spécifique ou l'obligation prise par une partie.
|
||||
* **role**: Définit les permissions, les conditions et les critères associés à cet engagement, assurant une exécution et une validation conformes aux attentes.
|
||||
|
||||
### 8.2. <a name='RoleDepositetRolePayment'></a>RoleDeposit et RolePayment
|
||||
### 6.2. <a name='RoleDepositetRolePayment'></a>RoleDeposit et RolePayment
|
||||
|
||||
Ces structures gèrent respectivement les dépôts de garantie et les paiements, en spécifiant les conditions sous lesquelles les fonds sont déposés, retenus ou transférés, contribuant ainsi à la confiance et à la fluidité des transactions au sein du réseau.
|
||||
|
||||
## 9. <a name='ScurisationdesCommunications'></a>Sécurisation des Communications
|
||||
## 7. <a name='ScurisationdesCommunications'></a>Sécurisation des Communications
|
||||
|
||||
La structure MetaData et ses sous-structures comme MetadataContractPublic, MetadataRoleConfidential, et MetadataPrivate fournissent un cadre pour sécuriser les communications et les données au sein du système 4NK, permettant une distinction claire entre les informations accessibles publiquement, celles réservées à certains rôles, et celles strictement privées.
|
||||
|
||||
### 9.1. <a name='CompositionetUtilisation'></a>Composition et Utilisation
|
||||
### 7.1. <a name='CompositionetUtilisation'></a>Composition et Utilisation
|
||||
|
||||
- **meta_data**: Chaque instance de MetaData encapsule des informations détaillées, des attributs et des clés de chiffrement liés à un item, facilitant la gestion sécurisée et la distribution ciblée des données.
|
||||
- **key_list**: Un élément crucial pour le chiffrement et la sécurisation des données, assurant que seules les parties autorisées peuvent accéder aux informations confidentielles.
|
||||
* **meta_data**: Chaque instance de MetaData encapsule des informations détaillées, des attributs et des clés de chiffrement liés à un item, facilitant la gestion sécurisée et la distribution ciblée des données.
|
||||
* **key_list**: Un élément crucial pour le chiffrement et la sécurisation des données, assurant que seules les parties autorisées peuvent accéder aux informations confidentielles.
|
||||
|
||||
## 10. <a name='IntgrationetOrchestrationdesProcessus'></a>Intégration et Orchestration des Processus
|
||||
## 8. <a name='IntgrationetOrchestrationdesProcessus'></a>Intégration et Orchestration des Processus
|
||||
|
||||
L'ItemProcess et ItemProcessPublicAttributeGroup offrent un cadre pour l'intégration et l'orchestration des processus dans le système 4NK, permettant la définition, la gestion et l'exécution de workflows complexes de manière sécurisée et efficace.
|
||||
|
||||
|
||||
## 11. <a name='Spcificationsducode'></a>Spécifications du code
|
||||
|
||||
Voir Specs - Code
|
||||
|
||||
### 11.1. <a name='Maintenanceenvironnementdedploiement'></a>Maintenance, environnement de déploiement
|
||||
|
||||
Voir Specs - Maintenance, environnement de déploiement
|
||||
|
||||
## 12. <a name='Annexe'></a>Annexe
|
||||
|
||||
### 12.1. <a name='ExemplesdeCode'></a>Exemples de Code
|
||||
## 9. <a name='ExemplesdeCode'></a>Exemples de Code
|
||||
|
||||
Extraits de code illustrant l'utilisation des PCD et PRD dans des scénarios réels.
|
||||
|
||||
### 12.2. <a name='Rfrences'></a>Références
|
||||
|
||||
Voir Specs - References
|
||||
|
@ -51,11 +51,9 @@
|
||||
* 6. [Metadata](#Metadata)
|
||||
* 6.1. [MetadataContractPublic](#MetadataContractPublic)
|
||||
* 6.2. [MetadataPrivate](#MetadataPrivate)
|
||||
* 6.3. [MetadataPrivate](#MetadataPrivate-1)
|
||||
* 6.4. [MetadataRoleConfidential](#MetadataRoleConfidential)
|
||||
* 6.5. [MetaDataa](#MetaDataa)
|
||||
* 6.6. [Amount](#Amount)
|
||||
* 6.7. [Number](#Number)
|
||||
* 6.3. [MetadataRoleConfidential](#MetadataRoleConfidential)
|
||||
* 6.4. [Amount](#Amount)
|
||||
* 6.5. [Number](#Number)
|
||||
* 7. [Request](#Request)
|
||||
* 8. [PCD](#PCD)
|
||||
* 8.1. [Pagination](#Pagination)
|
||||
@ -64,32 +62,36 @@
|
||||
* 8.4. [PcdItemEncAttributePrivate](#PcdItemEncAttributePrivate)
|
||||
* 8.5. [PcdItemGenericEnc](#PcdItemGenericEnc)
|
||||
* 8.6. [PcdItemEnc](#PcdItemEnc)
|
||||
* 8.7. [RequestPcd](#RequestPcd)
|
||||
* 9. [PRD](#PRD)
|
||||
* 9.1. [RequestPrd](#RequestPrd)
|
||||
* 9.2. [RequestPrdConfirm](#RequestPrdConfirm)
|
||||
* 9.3. [RequestPrdKeyBackup](#RequestPrdKeyBackup)
|
||||
* 9.4. [RequestPrdKeyHello](#RequestPrdKeyHello)
|
||||
* 9.5. [RequestPrdList](#RequestPrdList)
|
||||
* 9.6. [RequestPrdMessage](#RequestPrdMessage)
|
||||
* 9.7. [RequestPrdList](#RequestPrdList-1)
|
||||
* 9.8. [RequestPrdResponse](#RequestPrdResponse)
|
||||
* 9.9. [RequestPrdUpdate](#RequestPrdUpdate)
|
||||
* 9.10. [RequestPrdKeyHello](#RequestPrdKeyHello-1)
|
||||
* 9.1. [RequestPrdConfirm](#RequestPrdConfirm)
|
||||
* 9.2. [RequestPrdKeyBackup](#RequestPrdKeyBackup)
|
||||
* 9.3. [RequestPrdKeyHello](#RequestPrdKeyHello)
|
||||
* 9.4. [RequestPrdList](#RequestPrdList)
|
||||
* 9.5. [RequestPrdMessage](#RequestPrdMessage)
|
||||
* 9.6. [RequestPrdResponse](#RequestPrdResponse)
|
||||
* 9.7. [RequestPrdUpdate](#RequestPrdUpdate)
|
||||
* 9.8. [RequestPrdKeyHello](#RequestPrdKeyHello-1)
|
||||
* 10. [Roles](#Roles)
|
||||
* 10.1. [RoleArtefact](#RoleArtefact)
|
||||
* 10.2. [RoleDeposit](#RoleDeposit)
|
||||
* 10.3. [RoleCommitment](#RoleCommitment)
|
||||
* 10.4. [RoleMember](#RoleMember)
|
||||
* 10.5. [RolePayment](#RolePayment)
|
||||
* 10.6. [RoleProcess](#RoleProcess)
|
||||
* 10.7. [Role](#Role)
|
||||
* 10.8. [TransactionModeDistribution](#TransactionModeDistribution)
|
||||
* 10.9. [TransactionModeDirect](#TransactionModeDirect)
|
||||
* 10.10. [TransactionMode](#TransactionMode)
|
||||
* 10.11. [RolesGroup](#RolesGroup)
|
||||
* 10.1. [RolesGroup](#RolesGroup)
|
||||
* 10.2. [RoleArtefact](#RoleArtefact)
|
||||
* 10.3. [RoleDeposit](#RoleDeposit)
|
||||
* 10.4. [RoleCommitment](#RoleCommitment)
|
||||
* 10.5. [RoleMember](#RoleMember)
|
||||
* 10.6. [RolePayment](#RolePayment)
|
||||
* 10.7. [RoleProcess](#RoleProcess)
|
||||
* 10.8. [Role](#Role)
|
||||
* 10.9. [TransactionMode](#TransactionMode)
|
||||
* 10.10. [TransactionModeDistribution](#TransactionModeDistribution)
|
||||
* 10.11. [TransactionModeDirect](#TransactionModeDirect)
|
||||
* 10.12. [RolePeer](#RolePeer)
|
||||
* 11. [Relay](#Relay)
|
||||
* 12. [12. Rust considerations](#Rustconsiderations)
|
||||
* 12.1. [General Implications for Project Objects](#GeneralImplicationsforProjectObjects)
|
||||
* 12.2. [Debug](#Debug)
|
||||
* 12.3. [Default](#Default)
|
||||
* 12.4. [PartialEq, Eq](#PartialEqEq)
|
||||
* 12.5. [Hash](#Hash)
|
||||
* 12.6. [PartialOrd, Ord](#PartialOrdOrd)
|
||||
|
||||
<!-- vscode-markdown-toc-config
|
||||
numbering=true
|
||||
@ -448,7 +450,6 @@ The Item struct serves as a foundational element, detailing the basic structure
|
||||
|----------------------------|--------------------------|--------|---------------------------------------------------------------------------|
|
||||
| uuid | String | | A unique identifier for the item. |
|
||||
| version | i64 | | The version of the item. |
|
||||
| hash | Option<String> | | An optional hash for the item. |
|
||||
| item_type | String | | The type of the item. `type` is a reserved keyword in Rust, renamed here. |
|
||||
| name | String | | The name of the item. |
|
||||
| pagination_number_per_pcd | u32 | | The pagination number per Portable Contract Document (PCD). |
|
||||
@ -589,14 +590,6 @@ L2Certif specifies a Layer 2 certification authority, including its network and
|
||||
|
||||
### 5.11. <a name='SharedPeer-1'></a>SharedPeer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
| Attribute Name | Type | Option | Description |
|
||||
|----------------|--------|--------|------------------------------------------------------|
|
||||
| peer_id | String | | Unique identifier for the peer. |
|
||||
@ -637,7 +630,7 @@ MetadataPrivate holds private metadata, ensuring the confidentiality of sensitiv
|
||||
|----------------|----------|--------|------------------------------------------------------------|
|
||||
| meta_data | MetaData | | Represents the private metadata associated with an entity. |
|
||||
|
||||
### 6.4. <a name='MetadataRoleConfidential'></a>MetadataRoleConfidential
|
||||
### 6.3. <a name='MetadataRoleConfidential'></a>MetadataRoleConfidential
|
||||
|
||||
This struct contains role-specific confidential metadata, balancing the need for privacy with role-based access and transparency.
|
||||
|
||||
@ -645,7 +638,7 @@ This struct contains role-specific confidential metadata, balancing the need for
|
||||
|----------------|----------|--------|-------------------------------------------------------------------------------|
|
||||
| meta_data | MetaData | | Represents the role-specific confidential metadata associated with an entity. |
|
||||
|
||||
### 6.6. <a name='Amount'></a>Amount
|
||||
### 6.4. <a name='Amount'></a>Amount
|
||||
|
||||
The Amount struct details financial amounts, including its timestamp, unit, and changes, facilitating precise financial transactions and records.
|
||||
|
||||
@ -657,7 +650,7 @@ The Amount struct details financial amounts, including its timestamp, unit, and
|
||||
| amount_unit | String | | The unit of the amount, such as "USD", "EUR", etc. |
|
||||
| amount_unit_ref | String | | A reference to an external unit system, providing context for the `amount_unit`. |
|
||||
|
||||
### 6.7. <a name='Number'></a>Number
|
||||
### 6.5. <a name='Number'></a>Number
|
||||
|
||||
Number provides a numeric value and its unit, supporting a wide range of quantitative representations in system operations.
|
||||
|
||||
@ -778,8 +771,7 @@ RequestPrd and its variations (Confirm, KeyBackup, KeyHello, List, Message, Resp
|
||||
| part_1_enc_hash_enc_by_sp_shared_secret | String | | The first part of the hash encrypted by a service provider's shared secret. |
|
||||
| shard_enc_by_sp_shared_secret | String | | The shard encrypted by a service provider's shared secret. |
|
||||
|
||||
### 9.2. <a name='RequestPrdConfirm'></a>RequestPrdConfirm
|
||||
|
||||
### 9.1. <a name='RequestPrdConfirm'></a>RequestPrdConfirm
|
||||
|
||||
The RequestPrdConfirm struct is designed for confirming actions or requests within the system, utilizing a Portable Request Document (PRD) alongside an encrypted confirmation code, ensuring secure acknowledgment of operations.
|
||||
|
||||
@ -788,7 +780,7 @@ The RequestPrdConfirm struct is designed for confirming actions or requests with
|
||||
| prd | RequestPrd | | The PRD (Portable Request Document) request. |
|
||||
| code_confirm_enc_by_shared_secret | String | | The confirmation code encrypted by a shared secret. |
|
||||
|
||||
### 9.3. <a name='RequestPrdKeyBackup'></a>RequestPrdKeyBackup
|
||||
### 9.2. <a name='RequestPrdKeyBackup'></a>RequestPrdKeyBackup
|
||||
|
||||
RequestPrdKeyBackup focuses on backup functionalities for PRD keys, incorporating device footprint and shard information, encrypted for security, facilitating the safe backup and recovery of crucial cryptographic keys.
|
||||
|
||||
@ -799,7 +791,7 @@ RequestPrdKeyBackup focuses on backup functionalities for PRD keys, incorporatin
|
||||
| part_1_enc_hash_enc_by_sp_shared_secret | String | | The first part of the hash encrypted by a service provider's shared secret. |
|
||||
| shard_enc_by_sp_shared_secret | String | | The shard encrypted by a service provider's shared secret. |
|
||||
|
||||
### 9.4. <a name='RequestPrdKeyHello'></a>RequestPrdKeyHello
|
||||
### 9.3. <a name='RequestPrdKeyHello'></a>RequestPrdKeyHello
|
||||
|
||||
The RequestPrdKeyHello struct is employed for initiating cryptographic communications, specifically for sharing initial key information or for cryptographic introductions between entities, enhancing secure connections.
|
||||
|
||||
@ -808,7 +800,7 @@ The RequestPrdKeyHello struct is employed for initiating cryptographic communica
|
||||
| prd | RequestPrd | | Represents a Portable Request Document (PRD). |
|
||||
| part_1_enc_hash_enc_by_sp_shared_secret | String | | The encrypted hash of part 1, encrypted by the service provider's shared secret. |
|
||||
|
||||
### 9.5. <a name='RequestPrdList'></a>RequestPrdList
|
||||
### 9.4. <a name='RequestPrdList'></a>RequestPrdList
|
||||
|
||||
RequestPrdList struct is utilized for listing or querying PRDs, aiding in the retrieval or enumeration of Portable Request Documents within the system, streamlining the management and access of PRDs.
|
||||
|
||||
@ -816,7 +808,7 @@ RequestPrdList struct is utilized for listing or querying PRDs, aiding in the re
|
||||
|----------------|------------|--------|-----------------------------------------|
|
||||
| prd | RequestPrd | | Represents a Portable Request Document. |
|
||||
|
||||
### 9.6. <a name='RequestPrdMessage'></a>RequestPrdMessage
|
||||
### 9.5. <a name='RequestPrdMessage'></a>RequestPrdMessage
|
||||
|
||||
The RequestPrdMessage struct serves the purpose of encapsulating messages within PRDs, allowing for secure and structured communication of information wrapped in a Portable Request Document.
|
||||
|
||||
@ -824,7 +816,7 @@ The RequestPrdMessage struct serves the purpose of encapsulating messages within
|
||||
|----------------|------------|--------|-----------------------------------------|
|
||||
| prd | RequestPrd | | Represents a Portable Request Document. |
|
||||
|
||||
### 9.8. <a name='RequestPrdResponse'></a>RequestPrdResponse
|
||||
### 9.6. <a name='RequestPrdResponse'></a>RequestPrdResponse
|
||||
|
||||
RequestPrdResponse is designed for responding to PRD requests, including the original PRD, signature for verification, and optional encrypted methods, ensuring a secure and verifiable response mechanism.
|
||||
|
||||
@ -839,7 +831,7 @@ RequestPrdResponse is designed for responding to PRD requests, including the ori
|
||||
| certif_key_enc_by_shared_secret | Option<String> | Yes | Encrypted certification key, encrypted with a shared secret. |
|
||||
| shared_secret_key | Option<KeyEncryption> | Yes | Optional encryption key used for shared secrets. |
|
||||
|
||||
### 9.9. <a name='RequestPrdUpdate'></a>RequestPrdUpdate
|
||||
### 9.7. <a name='RequestPrdUpdate'></a>RequestPrdUpdate
|
||||
|
||||
RequestPrdUpdate struct facilitates the updating of PRDs, incorporating new version hashes and lists of related PCD hashes, alongside requested methods for payments, deposits, and commitments, ensuring PRDs remain current and relevant.
|
||||
|
||||
@ -855,7 +847,7 @@ RequestPrdUpdate struct facilitates the updating of PRDs, incorporating new vers
|
||||
| ask_deposit_method | String | | The requested deposit method. |
|
||||
| ask_commitment_method | String | | The requested commitment method. |
|
||||
|
||||
### 9.10. <a name='RequestPrdKeyHello-1'></a>RequestPrdKeyHello
|
||||
### 9.8. <a name='RequestPrdKeyHello-1'></a>RequestPrdKeyHello
|
||||
|
||||
This structure, repeated for emphasis, underscores the initial cryptographic greeting or handshake within the system, focusing on secure introduction and key exchange protocols.
|
||||
|
||||
@ -868,7 +860,7 @@ This structure, repeated for emphasis, underscores the initial cryptographic gre
|
||||
|
||||
The Roles struct defines the various roles within the system, specifying responsibilities, required security measures such as two-factor authentication, validation timeouts, and conditions for action validation, crucial for role-based access control and process flow.
|
||||
|
||||
### 10.11. <a name='RolesGroup'></a>RolesGroup
|
||||
### 10.1. <a name='RolesGroup'></a>RolesGroup
|
||||
|
||||
RolesGroup outlines a collection of roles.
|
||||
|
||||
@ -879,7 +871,7 @@ RolesGroup outlines a collection of roles.
|
||||
| role_process | String | | Represents the entities charged with defining and managing processes within the system. |
|
||||
| role_artefact_list | Array<String> | | A list of artefact roles, allowing customization and extension of functionalities and interactions beyond standard roles. |
|
||||
|
||||
### 10.1. <a name='RoleArtefact'></a>RoleArtefact
|
||||
### 10.2. <a name='RoleArtefact'></a>RoleArtefact
|
||||
|
||||
The RoleArtefact struct is utilized to define the role associated with artefacts within the system. It specifies the responsibilities and permissions tied to the handling, management, or interaction with artefacts, ensuring clarity in role-based actions and access controls related to artefact-related operations.
|
||||
|
||||
@ -888,7 +880,7 @@ The RoleArtefact struct is utilized to define the role associated with artefacts
|
||||
| item_name | String | | Identifies the specific artefact or obligation undertaken by a party. |
|
||||
| role | String | | Defines the permissions, conditions, and criteria associated with this artefact, ensuring execution and validation according to expectations. |
|
||||
|
||||
### 10.2. <a name='RoleDeposit'></a>RoleDeposit
|
||||
### 10.3. <a name='RoleDeposit'></a>RoleDeposit
|
||||
|
||||
RoleDeposit outlines the role and responsibilities concerning deposits in the system. It identifies the specific obligations and permissions granted to entities managing or engaging with deposit transactions, providing a structured approach to deposit management and execution.
|
||||
|
||||
@ -897,7 +889,7 @@ RoleDeposit outlines the role and responsibilities concerning deposits in the sy
|
||||
| item_name | String | | Identifies the specific deposit or obligation undertaken by a party. |
|
||||
| role | String | | Defines the permissions, conditions, and criteria associated with this deposit, ensuring execution and validation according to expectations. |
|
||||
|
||||
### 10.3. <a name='RoleCommitment'></a>RoleCommitment
|
||||
### 10.4. <a name='RoleCommitment'></a>RoleCommitment
|
||||
|
||||
The RoleCommitment struct details the role associated with commitments, delineating the duties and authorities of entities tasked with creating, managing, or fulfilling commitments. This struct ensures that commitment-related activities are clearly defined and regulated within the system.
|
||||
|
||||
@ -906,7 +898,7 @@ The RoleCommitment struct details the role associated with commitments, delineat
|
||||
| item_name | String | | Identifies the specific commitment or obligation undertaken by a party. |
|
||||
| role | String | | Defines the permissions, conditions, and criteria associated with this commitment, ensuring execution and validation according to expectations. |
|
||||
|
||||
### 10.4. <a name='RoleMember'></a>RoleMember
|
||||
### 10.5. <a name='RoleMember'></a>RoleMember
|
||||
|
||||
RoleMember defines the role of members within the system, specifying the rights and responsibilities of membership. This includes access to resources, participation in processes, and contributions to decision-making, highlighting the importance of members in the system's ecosystem.
|
||||
|
||||
@ -915,7 +907,7 @@ RoleMember defines the role of members within the system, specifying the rights
|
||||
| item_name | String | | Identifies the specific member or obligation undertaken by a party. |
|
||||
| role | String | | Defines the permissions, conditions, and criteria associated with this member, ensuring execution and validation according to expectations. |
|
||||
|
||||
### 10.5. <a name='RolePayment'></a>RolePayment
|
||||
### 10.6. <a name='RolePayment'></a>RolePayment
|
||||
|
||||
The RolePayment struct is dedicated to defining the role related to payments, outlining the specific tasks, permissions, and responsibilities assigned to entities handling or involved in payment transactions, ensuring secure and orderly payment processes.
|
||||
|
||||
@ -924,7 +916,7 @@ The RolePayment struct is dedicated to defining the role related to payments, ou
|
||||
| item_name | String | | Identifies the specific payment or obligation undertaken by a party. |
|
||||
| role | String | | Defines the permissions, conditions, and criteria associated with this payment, ensuring execution and validation according to expectations. |
|
||||
|
||||
### 10.6. <a name='RoleProcess'></a>RoleProcess
|
||||
### 10.7. <a name='RoleProcess'></a>RoleProcess
|
||||
|
||||
RoleProcess describes the role associated with processes within the system. It specifies the expectations, duties, and permissions of entities that initiate, manage, or participate in various system processes, facilitating smooth and regulated process flow.
|
||||
|
||||
@ -933,7 +925,7 @@ RoleProcess describes the role associated with processes within the system. It s
|
||||
| item_name | String | | Identifies the specific process or obligation undertaken by a party. |
|
||||
| role | String | | Defines the permissions, conditions, and criteria associated with this process, ensuring execution and validation according to expectations. |
|
||||
|
||||
### 10.7. <a name='Role'></a>Role
|
||||
### 10.8. <a name='Role'></a>Role
|
||||
|
||||
The Role struct broadly defines a role within the system, encapsulating the general responsibilities, required security measures like two-factor authentication, validation timeouts, and conditions for action validation. This serves as a foundation for more specific role definitions, ensuring a flexible yet secure role-based access and action framework.
|
||||
|
||||
@ -944,7 +936,7 @@ The Role struct broadly defines a role within the system, encapsulating the gene
|
||||
| validation_timeout | Integer | | Defines a deadline for the validation of actions or requests associated with this role, ensuring timeliness and efficiency of processes. |
|
||||
| condition | String | | Set of criteria and rules defining how actions are validated, executed, or denied based on the context. |
|
||||
|
||||
### 10.10. <a name='TransactionMode'></a>TransactionMode
|
||||
### 10.9. <a name='TransactionMode'></a>TransactionMode
|
||||
|
||||
TransactionMode and its specific types (Distribution, Direct) describe how transactions are handled within the system, whether through direct communication or distributed across multiple entities, influencing the flow and security of transactions.
|
||||
|
||||
@ -952,7 +944,7 @@ TransactionMode and its specific types (Distribution, Direct) describe how trans
|
||||
|----------------|--------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| mode | String | | Defines the overall transaction mode, influencing how requests and responses are distributed and processed within the network, impacting efficiency and security of interactions. |
|
||||
|
||||
### 10.8. <a name='TransactionModeDistribution'></a>TransactionModeDistribution
|
||||
### 10.10. <a name='TransactionModeDistribution'></a>TransactionModeDistribution
|
||||
|
||||
TransactionModeDistribution specifies a transaction mode that emphasizes the distribution of transactions or information across multiple parties or nodes, aiming for a decentralized or distributed approach to transaction handling and information dissemination, enhancing system resilience and participation.
|
||||
|
||||
@ -960,7 +952,7 @@ TransactionModeDistribution specifies a transaction mode that emphasizes the dis
|
||||
|----------------|--------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| mode | String | | Describes the distribution method for requests or information across multiple roles or entities, facilitating broad communication and collaboration within the system. |
|
||||
|
||||
### 10.9. <a name='TransactionModeDirect'></a>TransactionModeDirect
|
||||
### 10.11. <a name='TransactionModeDirect'></a>TransactionModeDirect
|
||||
|
||||
The TransactionModeDirect struct indicates a transaction mode focused on direct interactions between specific parties or nodes, streamlining communication and transactions by directly targeting recipients, optimizing for speed and precision in transaction execution.
|
||||
|
||||
@ -968,7 +960,6 @@ The TransactionModeDirect struct indicates a transaction mode focused on direct
|
||||
|----------------|--------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| mode | String | | Focuses the exchange of information or requests directly between a sender and a specific recipient, ensuring targeted and secure interaction. |
|
||||
|
||||
|
||||
### 10.12. <a name='RolePeer'></a>RolePeer
|
||||
|
||||
The RolePeer struct identifies peers associated with specific roles, detailing their identifiers, associated peers, and metadata, essential for defining peer responsibilities and permissions within the networked environment.
|
||||
@ -991,3 +982,41 @@ Relay is associated with the infrastructure that facilitates the relay of inform
|
||||
| status | String | | Current status of the relay (e.g., active, inactive). |
|
||||
| last_active | DateTime<Utc> | | Timestamp of the last activity seen from the relay. |
|
||||
| relay_type | String | | Type of the relay (e.g., full, light). |
|
||||
|
||||
## 12. <a name='Rustconsiderations'></a>12. Rust considerations
|
||||
|
||||
### 12.1. <a name='GeneralImplicationsforProjectObjects'></a> General Implications for Project Objects
|
||||
|
||||
Incorporating these traits into a struct's definition enhances its utility across various aspects of a project. For instance:
|
||||
|
||||
* **Serialization traits (Serialize, Deserialize)**: facilitate the easy exchange of data with external services or storage systems.
|
||||
* **Traits like Clone, Debug, and Default**: improve the development experience by providing essential functionalities for debugging, testing, and initializing objects.
|
||||
* **Comparison and ordering traits (PartialEq, Eq, PartialOrd, Ord)**: are crucial for logic checks, sorting, and storing objects in data structures that require ordering or uniqueness.
|
||||
* **The Hash trait**: expands the struct's utility in hash-based collections, enabling efficient data retrieval and storage.
|
||||
|
||||
### 12.2. <a name='Debug'></a> Debug
|
||||
|
||||
The Debug trait allows instances of the struct to be formatted using the {:?} formatter. This is essential for debugging purposes, as it provides a way to output the contents of the struct to the console or logs, aiding in the development and troubleshooting process.
|
||||
Serialize, Deserialize (serde crate)
|
||||
|
||||
Serialize and Deserialize traits from the serde crate enable the struct to be easily converted to and from data formats such as JSON, YAML, or TOML. This is particularly useful for web applications or services that need to send or receive data in a structured format over the network.
|
||||
|
||||
### 12.3. <a name='Default'></a> Default
|
||||
|
||||
Implementing the Default trait allows for the creation of a struct with default values. This is useful for initializing structs with a set of predetermined values or when a struct needs to be created without specifying every field explicitly.
|
||||
Clone
|
||||
|
||||
The Clone trait allows for the creation of an exact copy of a struct instance. This is crucial for cases where a mutable copy of a struct is needed, while keeping the original instance unchanged.
|
||||
|
||||
### 12.4. <a name='PartialEqEq'></a> PartialEq, Eq
|
||||
|
||||
PartialEq and Eq traits enable comparison operations for instances of the struct. While PartialEq allows for partial equality checks (where some of the comparisons might be indeterminate), Eq denotes that every comparison will either be true or false, ensuring a stricter equality condition that is necessary for certain collections or logic checks.
|
||||
|
||||
### 12.5. <a name='Hash'></a> Hash
|
||||
|
||||
The Hash trait is used to compute a hash value for instances of the struct. This is essential for structs that need to be stored in collections such as HashMap or HashSet, where a unique identifier is required to efficiently retrieve or store items.
|
||||
|
||||
### 12.6. <a name='PartialOrdOrd'></a> PartialOrd, Ord
|
||||
|
||||
PartialOrd and Ord traits allow for ordering comparisons between instances of the struct. PartialOrd provides functionality for partial ordering, where some comparisons might not produce a clear order, whereas Ord requires a total ordering, ensuring that any two instances can be reliably ordered. This is critical for sorting operations or when structs are stored in ordered collections.
|
||||
FromForm (rocket crate)
|
||||
|
@ -1,9 +1,6 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
pub struct CommitmentMethod {
|
||||
pub method: String,
|
||||
}
|
||||
|
@ -1,11 +1,8 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::role::TransactionMode;
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
pub struct ConditionCap {
|
||||
pub role_deposit: String,
|
||||
pub role_transaction: TransactionMode,
|
||||
|
@ -1,10 +1,7 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::role::TransactionMode;
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
pub struct ConditionCommitment {
|
||||
pub role_artefact: String,
|
||||
pub role_transaction: TransactionMode,
|
||||
|
@ -1,10 +1,7 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::role::TransactionMode;
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ConditionDeposit {
|
||||
pub role_deposit: String,
|
||||
|
@ -1,9 +1,6 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ConditionOrchestration {
|
||||
pub role_ok: String,
|
||||
|
@ -1,11 +1,8 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::role::TransactionMode;
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ConditionPayment {
|
||||
pub role_payment: String,
|
||||
|
@ -1,9 +1,6 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ConditionPrdAddressSet {
|
||||
pub from_role: String,
|
||||
|
@ -1,10 +1,7 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::metadata::Amount;
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ConditionPublish {
|
||||
pub pcd_data_size_max_unit: String,
|
||||
|
@ -1,9 +1,6 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct DepositMethod {
|
||||
pub method: String,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use uuid::Uuid;
|
||||
@ -9,9 +8,7 @@ use super::{
|
||||
pcd_item_enc::PcdItemEnc,
|
||||
};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct Item {
|
||||
pub uuid: String,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::json;
|
||||
use std::hash::Hash;
|
||||
@ -10,9 +9,7 @@ use super::pcd_item_enc_attribute_public::PcdItemEncAttributePublic;
|
||||
use super::pcd_item_enc_attribute_role_confidential::PcdItemEncAttributeRoleConfidential;
|
||||
use super::pcd_item_generic_enc::PcdItemGenericEnc;
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, FromForm, Hash, PartialOrd, Ord,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
pub struct ItemArtefact {
|
||||
pub item: Item,
|
||||
pub public_attribute_group: Vec<String>, // Assuming list of attributes
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::{
|
||||
@ -9,9 +8,7 @@ use super::{
|
||||
pcd_item_generic_enc::PcdItemGenericEnc,
|
||||
};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemCommitmentPublicAttributeGroup {
|
||||
pub for_sp_address_list: Vec<String>,
|
||||
@ -108,9 +105,7 @@ impl ItemCommitmentPublicAttributeGroup {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemCommitmentRoleConfidentialAttributeGroup {
|
||||
pub payload_list_confidential: Vec<String>,
|
||||
@ -147,9 +142,7 @@ impl ItemCommitmentRoleConfidentialAttributeGroup {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemCommitmentPrivateAttributeGroup {
|
||||
pub payload_list_private: Vec<String>,
|
||||
@ -180,9 +173,7 @@ impl ItemCommitmentPrivateAttributeGroup {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemCommitment {
|
||||
pub item: Item,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::{
|
||||
@ -9,9 +8,7 @@ use super::{
|
||||
pcd_item_generic_enc::PcdItemGenericEnc,
|
||||
};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemDepositPublicAttributeGroup {
|
||||
pub for_sp_address_list: Vec<String>,
|
||||
@ -115,9 +112,7 @@ impl ItemDepositPublicAttributeGroup {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemDepositRoleConfidentialAttributeGroup {
|
||||
pub payload_list_confidential: Vec<String>,
|
||||
@ -177,9 +172,7 @@ impl ItemDepositRoleConfidentialAttributeGroup {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemDepositPrivateAttributeGroup {
|
||||
pub payload_list_private: Vec<String>,
|
||||
@ -218,9 +211,7 @@ impl ItemDepositPrivateAttributeGroup {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemDeposit {
|
||||
pub item: Item,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::{
|
||||
@ -8,9 +7,7 @@ use super::{
|
||||
pcd_item_enc_attribute_role_confidential::PcdItemEncAttributeRoleConfidential,
|
||||
pcd_item_generic_enc::PcdItemGenericEnc,
|
||||
};
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemMemberPublicAttributeGroup {
|
||||
pub sp_address_public: String,
|
||||
@ -129,9 +126,7 @@ impl ItemMemberPublicAttributeGroup {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemMemberRoleConfidentialAttributeGroup {
|
||||
pub payment_method_list_confidential: Vec<String>,
|
||||
@ -188,9 +183,7 @@ impl ItemMemberRoleConfidentialAttributeGroup {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemMemberPrivateAttributeGroup {
|
||||
pub payment_method_list_private: Vec<String>,
|
||||
@ -315,9 +308,7 @@ impl ItemMemberPrivateAttributeGroup {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemMember {
|
||||
pub item: Item,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::{
|
||||
@ -8,9 +7,7 @@ use super::{
|
||||
pcd_item_enc_attribute_role_confidential::PcdItemEncAttributeRoleConfidential,
|
||||
pcd_item_generic_enc::PcdItemGenericEnc,
|
||||
};
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemPaymentPublicAttributeGroup {
|
||||
pub for_sp_address_list: Vec<String>,
|
||||
@ -147,9 +144,7 @@ impl ItemPaymentPublicAttributeGroup {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemPaymentRoleConfidentialAttributeGroup {
|
||||
pub payload_list_confidential: Vec<String>,
|
||||
@ -212,9 +207,7 @@ impl ItemPaymentRoleConfidentialAttributeGroup {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemPaymentPrivateAttributeGroup {
|
||||
pub payload_list_private: Vec<String>,
|
||||
@ -256,9 +249,7 @@ impl ItemPaymentPrivateAttributeGroup {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemPayment {
|
||||
pub item: Item,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::{
|
||||
@ -7,9 +6,7 @@ use super::{
|
||||
pcd_item_enc_attribute_public::PcdItemEncAttributePublic,
|
||||
pcd_item_generic_enc::PcdItemGenericEnc,
|
||||
};
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemPeerPublicAttributeGroup {
|
||||
pub sp_address: String,
|
||||
@ -146,9 +143,7 @@ impl ItemPeerPublicAttributeGroup {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemPeerPrivateAttributeGroup {
|
||||
pub config: String, // Assuming it's a simple string for now
|
||||
@ -176,9 +171,7 @@ impl ItemPeerPrivateAttributeGroup {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemPeer {
|
||||
pub item: Item,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::{
|
||||
@ -7,9 +6,7 @@ use super::{
|
||||
pcd_item_generic_enc::PcdItemGenericEnc, roles_group::RolesGroup,
|
||||
};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemProcessPublicAttributeGroup {
|
||||
// Fields for public attributes
|
||||
@ -40,9 +37,7 @@ impl ItemProcessPublicAttributeGroup {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct ItemProcess {
|
||||
pub item: Item,
|
||||
|
@ -1,5 +1,5 @@
|
||||
use rand::RngCore;
|
||||
use rocket::FromForm;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::{json, Value};
|
||||
|
||||
@ -100,9 +100,7 @@ impl Aes256GcmIv96Bit {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
pub struct KeyEncryption {
|
||||
pub attribute_name: Option<String>,
|
||||
pub key: Option<String>,
|
||||
|
@ -1,15 +1,12 @@
|
||||
use chrono::Utc;
|
||||
|
||||
use rocket::FromForm;
|
||||
use sha2::{Digest, Sha256};
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::shared_peer::SharedPeer;
|
||||
use super::shared_process::SharedProcess;
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct Pow {
|
||||
pub data_hash: String,
|
||||
@ -66,9 +63,7 @@ impl Pow {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct Message {
|
||||
pub shared_peer_list: Vec<SharedPeer>,
|
||||
|
@ -1,11 +1,8 @@
|
||||
use super::{message::Message, shared_peer::SharedPeer, shared_process::SharedProcess};
|
||||
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct MessageClient {
|
||||
pub message: Message, // Assuming Message is a predefined struct
|
||||
|
@ -1,10 +1,7 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::message::Message;
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct MessageConnect {
|
||||
pub message: Message, // Assuming Message is a predefined struct
|
||||
|
@ -1,10 +1,7 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::key_encryption::KeyEncryption;
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct Number {
|
||||
pub fixed_state: bool,
|
||||
@ -32,9 +29,7 @@ impl Number {
|
||||
}
|
||||
|
||||
// Struct for representing an amount with various attributes.
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct Amount {
|
||||
pub timestamp: u64,
|
||||
@ -82,9 +77,7 @@ impl Amount {
|
||||
// Additional methods for Amount can be added here.
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct MetaData {
|
||||
pub tag_list: Vec<String>,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::{
|
||||
@ -6,9 +5,7 @@ use super::{
|
||||
pcd_item_enc_attribute_public::PcdItemEncAttributePublic,
|
||||
};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct MetadataContractPublic {
|
||||
pub meta_data: MetaData,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::{
|
||||
@ -6,9 +5,7 @@ use super::{
|
||||
pcd_item_enc_attribute_private::PcdItemEncAttributePrivate,
|
||||
};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct MetadataPrivate {
|
||||
pub meta_data: MetaData,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::{
|
||||
@ -6,9 +5,7 @@ use super::{
|
||||
pcd_item_enc_attribute_role_confidential::PcdItemEncAttributeRoleConfidential,
|
||||
};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct MetadataRoleConfidential {
|
||||
pub meta_data: MetaData,
|
||||
|
@ -1,9 +1,6 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct Pagination {
|
||||
pub start: usize,
|
||||
|
@ -1,9 +1,6 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct PaymentMethod {
|
||||
pub method: String,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use std::hash::Hash;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
@ -9,9 +8,7 @@ use super::{
|
||||
pcd_item_enc_attribute_role_confidential::PcdItemEncAttributeRoleConfidential,
|
||||
};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct PcdItemEnc {
|
||||
pub version: i64,
|
||||
|
@ -1,11 +1,8 @@
|
||||
use rocket::FromForm;
|
||||
use std::hash::Hash;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, FromForm, Hash, PartialOrd, Ord,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct PcdItemEncAttributePrivate {
|
||||
pub attribute_name: String,
|
||||
|
@ -1,11 +1,8 @@
|
||||
use rocket::FromForm;
|
||||
use std::hash::Hash;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, FromForm, Hash, PartialOrd, Ord,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct PcdItemEncAttributePublic {
|
||||
pub attribute_name: String,
|
||||
|
@ -1,13 +1,10 @@
|
||||
use rocket::FromForm;
|
||||
use std::hash::Hash;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::key_encryption::KeyEncryption;
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, FromForm, Hash, PartialOrd, Ord,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct PcdItemEncAttributeRoleConfidential {
|
||||
pub attribute_name: String,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use std::hash::Hash;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
@ -9,9 +8,7 @@ use super::{
|
||||
pcd_item_enc_attribute_role_confidential::PcdItemEncAttributeRoleConfidential,
|
||||
};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct PcdItemGenericEnc {
|
||||
pub item_enc: PcdItemEnc,
|
||||
|
@ -1,9 +1,6 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct Request {
|
||||
pub item_name: Option<String>,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use std::{
|
||||
collections::hash_map::DefaultHasher,
|
||||
hash::{Hash, Hasher},
|
||||
@ -12,9 +11,7 @@ use super::{
|
||||
shared_peer::SharedPeer, shared_process::SharedProcess,
|
||||
};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RequestPcd {
|
||||
pub request: Request, // Assuming Request is a predefined struct
|
||||
|
@ -1,11 +1,8 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::hash::Hash;
|
||||
|
||||
use super::{key_encryption::KeyEncryption, request::Request};
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
pub struct KeyRoleConfidential {
|
||||
pub attribute_name: String,
|
||||
pub key: KeyEncryption,
|
||||
@ -34,9 +31,7 @@ impl KeyRoleConfidential {
|
||||
// Additional methods for KeyRoleConfidential can be added here
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, FromForm, Hash, PartialOrd, Ord,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
pub struct RequestPrd {
|
||||
pub request: Request, // Assuming Request is a predefined struct
|
||||
pub pcd_keys_role_confidential_list_enc_by_shared_secret: String,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use std::{
|
||||
collections::hash_map::DefaultHasher,
|
||||
hash::{Hash, Hasher},
|
||||
@ -10,9 +9,7 @@ use super::{
|
||||
key_encryption::KeyEncryption, message_client::MessageClient, request_prd::RequestPrd,
|
||||
shared_peer::SharedPeer, shared_process::SharedProcess,
|
||||
};
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RequestPrdConfirm {
|
||||
pub prd: RequestPrd,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use std::{
|
||||
collections::hash_map::DefaultHasher,
|
||||
hash::{Hash, Hasher},
|
||||
@ -10,9 +9,7 @@ use super::{
|
||||
key_encryption::KeyEncryption, message_client::MessageClient, request_prd::RequestPrd,
|
||||
shared_peer::SharedPeer, shared_process::SharedProcess,
|
||||
};
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RequestPrdKeyBackup {
|
||||
pub prd: RequestPrd,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use std::{
|
||||
collections::hash_map::DefaultHasher,
|
||||
hash::{Hash, Hasher},
|
||||
@ -10,9 +9,7 @@ use super::{
|
||||
key_encryption::KeyEncryption, message_client::MessageClient, request_prd::RequestPrd,
|
||||
shared_peer::SharedPeer, shared_process::SharedProcess,
|
||||
};
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RequestPrdKeyHello {
|
||||
pub prd: RequestPrd,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use std::{
|
||||
collections::hash_map::DefaultHasher,
|
||||
hash::{Hash, Hasher},
|
||||
@ -10,9 +9,7 @@ use super::{
|
||||
key_encryption::KeyEncryption, message_client::MessageClient, request_prd::RequestPrd,
|
||||
shared_peer::SharedPeer, shared_process::SharedProcess,
|
||||
};
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RequestPrdList {
|
||||
pub prd: RequestPrd,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use std::{
|
||||
collections::hash_map::DefaultHasher,
|
||||
hash::{Hash, Hasher},
|
||||
@ -10,9 +9,7 @@ use super::{
|
||||
key_encryption::KeyEncryption, message_client::MessageClient, request_prd::RequestPrd,
|
||||
shared_peer::SharedPeer, shared_process::SharedProcess,
|
||||
};
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RequestPrdMessage {
|
||||
pub prd: RequestPrd,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use serde_json::json;
|
||||
use std::{collections::hash_map::DefaultHasher, hash::Hash, hash::Hasher};
|
||||
|
||||
@ -11,9 +10,7 @@ use super::{
|
||||
key_encryption::KeyEncryption, message_client::MessageClient, payment_method::PaymentMethod,
|
||||
request_prd::RequestPrd, shared_peer::SharedPeer, shared_process::SharedProcess,
|
||||
};
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, FromForm, Hash, PartialOrd, Ord,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RequestPrdResponse {
|
||||
pub prd: RequestPrd,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use std::{
|
||||
collections::hash_map::DefaultHasher,
|
||||
hash::{Hash, Hasher},
|
||||
@ -9,9 +8,7 @@ use super::{
|
||||
shared_peer::SharedPeer, shared_process::SharedProcess,
|
||||
};
|
||||
use serde::{Deserialize, Serialize};
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RequestPrdUpdate {
|
||||
pub prd: RequestPrd,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::{
|
||||
@ -7,9 +6,7 @@ use super::{
|
||||
condition_prd_address_set::ConditionPrdAddressSet, condition_publish::ConditionPublish,
|
||||
item::Item, metadata::Amount,
|
||||
};
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct TransactionModeDistribution {
|
||||
pub from_prd_update_from: String,
|
||||
@ -50,9 +47,7 @@ impl TransactionModeDistribution {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct TransactionModeDirect {
|
||||
pub from_prd_update_from: String,
|
||||
@ -75,9 +70,7 @@ impl TransactionModeDirect {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
pub struct TransactionMode {
|
||||
pub amount: Amount,
|
||||
pub role_transaction_distribution: TransactionModeDistribution,
|
||||
@ -112,9 +105,7 @@ impl TransactionMode {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct Role {
|
||||
pub item: Item,
|
||||
|
@ -1,10 +1,7 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::role::Role;
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RoleArtefact {
|
||||
pub item_name: String,
|
||||
|
@ -1,10 +1,7 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::role::Role;
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RoleCommitment {
|
||||
pub item_name: String,
|
||||
|
@ -1,10 +1,7 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::role::Role;
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RoleDeposit {
|
||||
pub item_name: String,
|
||||
|
@ -1,10 +1,7 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::role::Role;
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RoleMember {
|
||||
pub item_name: String,
|
||||
|
@ -1,10 +1,7 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::role::Role;
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RolePayment {
|
||||
pub item_name: String,
|
||||
|
@ -1,10 +1,7 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::role::Role;
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RolePeer {
|
||||
pub item_name: String,
|
||||
|
@ -1,10 +1,7 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::role::Role;
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RoleProcess {
|
||||
pub item_name: String,
|
||||
|
@ -1,4 +1,3 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::workflows::workflow_pcd_create_and_send_all::PcdItemEncAttributeRoleConfidentialExportKey;
|
||||
@ -10,9 +9,7 @@ use super::{
|
||||
role_peer::RolePeer, role_process::RoleProcess,
|
||||
};
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct RolesGroup {
|
||||
pub role_peer: RolePeer,
|
||||
|
@ -1,10 +1,7 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::message_client::MessageClient;
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct Relay {
|
||||
pub address_port: u16,
|
||||
@ -41,9 +38,7 @@ impl Relay {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct L1Node {
|
||||
pub address_port: u16,
|
||||
@ -75,9 +70,7 @@ impl L1Node {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct L1Miner {
|
||||
pub sp_address_rewarder: String,
|
||||
@ -97,9 +90,7 @@ impl L1Miner {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct L2Node {
|
||||
pub address_port: u16,
|
||||
@ -145,9 +136,7 @@ impl L2Node {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct L2Certif {
|
||||
pub sp_address_certif: String,
|
||||
@ -164,9 +153,7 @@ impl L2Certif {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct SharedPeer {
|
||||
pub domain: String,
|
||||
|
@ -1,10 +1,7 @@
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::key_encryption::KeyEncryption;
|
||||
#[derive(
|
||||
Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, FromForm,
|
||||
)]
|
||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
|
||||
pub struct SharedProcess {
|
||||
pub hash: String,
|
||||
|
@ -3,7 +3,6 @@ use crate::models::{
|
||||
message_client::MessageClient, payment_method::PaymentMethod, roles_group::RolesGroup,
|
||||
};
|
||||
|
||||
use rocket::FromForm;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::hash::Hash;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user