diff --git a/doc/Auth-Specs.md b/doc/Auth-Specs.md index 5c4e1ad..70543c9 100644 --- a/doc/Auth-Specs.md +++ b/doc/Auth-Specs.md @@ -27,12 +27,7 @@ * 14. [Exemples de Code](#ExemplesdeCode) * 15. [Todo](#Todo) - - -# Auth - Specs +# Auth - Specs ## 1. Objectif @@ -46,6 +41,8 @@ Ce système couvrira la conception et le développement de l'architecture d'auth ## 3. Documents de référence +Wireframes : + Voir [_Doc_references.md](_Doc_references.md). ## 4. Schématisation des processus @@ -152,7 +149,7 @@ La clé privée `spend_recover` est la clé principale pour forger les identité Cette clé est d'abord décomposée, avant d'être partiellement distribuée. Voici les principales étapes : 1. Cette clé sera scindée en 2 parties (à la moitié de la longueur de leur représentation hexadécimale) : - + 1.1. `Part1`, de 128 bits c'est la partie qui sera chiffrée (AES-GCM 256 bits) par le mot de passe "hashé" (SHA-256 d'un scrytp) etc une seed de générée aléatoirement de 256 bits avec (concaténé) @@ -190,9 +187,9 @@ pre_id=sha256(part1_spend_recover_enc, MDP) ``` 3. Création d'un `RequestPrdList` par membre (1 shard par membre), par `RequestPrd` : - + 3.1. Génération d'une clé de chiffrement dite `sp_shared_secret` qui sera transmise dans le Diffie-Hellman de la transaction SP. - + 3.2. Création d'un `ItemMember` à envoyer avec le `RequestPrdList`. 4. Création des messages de type `Message` correspondant aux RequestPrd, envoi des messages aux relais connectés. diff --git a/doc/Item-Specs.md b/doc/Item-Specs.md index 35552c4..4e776c8 100644 --- a/doc/Item-Specs.md +++ b/doc/Item-Specs.md @@ -16,6 +16,8 @@ ## 1. Objectif +Les transactions Silent Payment SP intègrent directement dans l'architecture web de l'application, comme démontré dans le client web. La gestion et l'intégration des SP sont conçues pour être fluides avec les systèmes front-end, assurant une expérience utilisateur transparente tout en maintenant la sécurité et la confidentialité au cœur de l'interaction utilisateur. + ## 2. Portée ## 3. 3. Documents de référence diff --git a/doc/Process-roles-Specs.md b/doc/Process-roles-Specs.md index c30aa73..eccd9a2 100644 --- a/doc/Process-roles-Specs.md +++ b/doc/Process-roles-Specs.md @@ -36,11 +36,7 @@ * 16. [Exemples de Code](#ExemplesdeCode) * 17. [Todo](#Todo) - -# `ItemProcess` et roles +# `ItemProcess` et roles ## 1. Objectif @@ -240,7 +236,6 @@ Les membres concernés sont identifiés par leurs `adresse SP`. * `to_type` : Soit "addresses" soit "roles" * `to_method` : Méthode de distribution de la somme des versements : "Amount divided" ou "Same Amount" - ## 16. Exemples de Code ## 17. Todo diff --git a/doc/RelayPages.md b/doc/RelayPages.md new file mode 100644 index 0000000..ac5a5ec --- /dev/null +++ b/doc/RelayPages.md @@ -0,0 +1,132 @@ + +* 1. [Objectif](#Objectif) +* 2. [Portée](#Porte) +* 3. [Documents de référence](#Documentsderfrence) +* 4. [Interface Client Web](#InterfaceClientWeb) + * 4.1. [Structure HTML de Base](#StructureHTMLdeBase) + * 4.2. [Page de création d'une identité numérique (create)](#Pagedecrationduneidentitnumriquecreate) + * 4.2.1. [Page de sélection de l'`ItemProcess` et des membres en charge de renvoyer les shards de la clé `recover`](#PagedeslectiondelItemProcessetdesmembresenchargederenvoyerlesshardsdelaclrecover) + * 4.2.2. [Page d'enrolement dans un `ItemProcess` (`onboarding`)](#PagedenrolementdansunItemProcessonboarding) + * 4.2.3. [Page de téléchargement des images de login des third parties](#Pagedetlchargementdesimagesdelogindesthirdparties) + * 4.3. [Page de récupération d'une identité numérique (`recover`)](#Pagedercuprationduneidentitnumriquerecover) + * 4.4. [Page de révocation d'une identité numérique (`revoke`)](#Pagedervocationduneidentitnumriquerevoke) + * 4.5. [Page de la liste des `ItemProcess`](#PagedelalistedesItemProcess) + * 4.6. [Page de Détail d'un `ItemProcess`](#PagedeDtaildunItemProcess) + * 4.7. [Page socle des `ItemProcess`](#PagesocledesItemProcess) + * 4.7.1. [4.7. Page de la liste d'un type d'`Item`](#PagedelalisteduntypedItem) + * 4.7.2. [4.7. Page de détail d'un `Item`](#PagededtaildunItem) + * 4.7.3. [4.7. Page de la liste des notifications](#Pagedelalistedesnotifications) + * 4.7.4. [4.7. Page de détail d'une notifications](#Pagededtaildunenotifications) + * 4.8. [Page d'import d'une image de login](#Pagedimportduneimagedelogin) + * 4.9. [Page de validation d'un code de confirmation (2FA)](#Pagedevalidationduncodedeconfirmation2FA) +* 5. [5. SDK Typescript](#5.SDKTypescript) +* 6. [5. SDK Web Assembly](#5.SDKWebAssembly) +* 7. [5. Serveur web](#5.Serveurweb) + + + + +# Auth - Specs + +## 1. Objectif + +L'objectif de cette spécification est de définir les exigences et les fonctionnalités de l'interface client web pour l'authentification et l'identification des utilisateurs sur la plateforme 4NK Web5 Solution. + +Tous les relais ont les mêmes pages, et partagent le SDK en Wasm de 4NK, leur liste d'`ItemPeer` et leur liste `ItemProcess`. + +## 2. Portée + +La portée de cette spécification comprend les exigences et les fonctionnalités suivantes pour l'interface client web. + +Wireframes : + +![Wireframes](diagrams/Login-Wireframes.png "Wireframes") + +## 3. Documents de référence + +Voir [_Doc_references.md](_Doc_references.md). + +## 4. Interface Client Web + +### 4.1. Structure HTML de Base + +Pour créer une application client web interactive qui communique efficacement avec les relais, une structure de base HTML est nécessaire. Voici les éléments clés à inclure dans votre fichier HTML pour démarrer avec l'application 4NK : + +```html + + + + + + + + + + 4NK Application + + + +
+ +
+ + +``` + +Cadre HML commun aux pages des relais : + +* **Doctype HTML** : Déclare que le document est de type HTML5. +* **Langue** : Définit la langue principale du contenu comme étant l'anglais (lang="en"). +* **Méta Éléments** : Fournissent des informations sur la page web, notamment le type d'encodage (charset="UTF-8"), l'auteur (author="4NK"), la description (description="4NK Web5 Platform"), les mots-clés (keywords="4NK, web5, bitcoin, blockchain, decentralize, dapps, relay, contract"), et la compatibilité avec les différents appareils (viewport="width=device-width, initial-scale=1.0"). +* **Lien CSS** : Référence une feuille de style externe pour styliser l'application (href="style/4nk.css"). +* **Titre** : Le titre de la page affiché dans l'onglet du navigateur (title="4NK Application"). +* **Conteneur Principal** : Un div conteneur avec un identifiant unique (id="containerId") sert de point d'ancrage pour l'injection de contenu dynamique ou d'interfaces utilisateur spécifiques à l'application. +* **Intégration des composants WASM dans l'interface utilisateur**: Un module permet d'intégrer un wrapper js avec le Wasm pour une interaction fluide avec les relais via le WebAssembly. + +### 4.2. Page de création d'une identité numérique (create) + +#### 4.2.1. Page de sélection de l'`ItemProcess` et des membres en charge de renvoyer les shards de la clé `recover` + +#### 4.2.2. Page d'enrolement dans un `ItemProcess` (`onboarding`) + +#### 4.2.3. Page de téléchargement des images de login des third parties + +### 4.3. Page de récupération d'une identité numérique (`recover`) + +### 4.4. Page de révocation d'une identité numérique (`revoke`) + +### 4.5. Page de la liste des `ItemProcess` + +### 4.6. Page de Détail d'un `ItemProcess` + +### 4.7. Page socle des `ItemProcess` + +#### 4.7.1. 4.7. Page de la liste d'un type d'`Item` + +#### 4.7.2. 4.7. Page de détail d'un `Item` + +#### 4.7.3. 4.7. Page de la liste des notifications + +#### 4.7.4. 4.7. Page de détail d'une notifications + +### 4.8. Page d'import d'une image de login + +### 4.9. Page de validation d'un code de confirmation (2FA) + +## 5. 5. SDK Typescript + +## 6. 5. SDK Web Assembly + +## 7. 5. Serveur web diff --git a/doc/Specs-Definition.md b/doc/Specs-Definition.md index 9b24974..3a3c3b3 100644 --- a/doc/Specs-Definition.md +++ b/doc/Specs-Definition.md @@ -19,6 +19,12 @@ Voir [_Doc_references.md](_Doc_references.md). ## 2. Spécifique 4NK +* **Web 5.0.** : Une plateforme décentralisée innovante développée par 4NK, combinant les technologies de blockchain et de contrats intelligents pour révolutionner la manière dont les applications web interagissent avec les données et les transactions sécurisées. + +* **Relay** : Serveurs ou noeuds spéciaux dans le réseau 4NK qui facilitent la communication peer-to-peer et la diffusion de transactions et de messages entre les utilisateurs et la blockchain. Les relais jouent un rôle crucial dans l'acheminement des informations et dans le maintien de la décentralisation du réseau. + +* **Contract/Process** : Dans le contexte de 4NK, un contrat (souvent appelé smart contract) désigne un ensemble de règles codées et stockées et vérifiée côté client à la différence des principales blockchains. Ces règles automatisent l'exécution des accords et des transactions strictement par et entre les parties prenantes, garantissant l'intégrité et la transparence des interactions au sein de la plateforme Web 5.0. Ces contrats étant formulés dans objets `ItemProcess` avec une semantique explicite des attributs et des règles; les systèmes peuvent exploiter les contrats directement dans le système d'informatione et la notion de contrat est fusionnée avec celle processus. + * **4NK**: Système décentralisé innovant basé sur les principes du web 5, centré sur la sécurité des données et l'identité numérique. * **Portable Contract Document (`RequestPcd`)**: Un format `JSON` chiffré conçu pour contenir des listes d'éléments d'un type spécifique, attachées à un processus (`process_hash`) et soumises aux règles de validation décrites dans le rôle correspondant à ce type d'`Item` dans le `ItemProcess` (`item_type`). diff --git a/doc/diagrams/.$PRDListFlows.drawio.bkp b/doc/diagrams/.$PRDListFlows.drawio.bkp index d9257c6..70ae0dd 100644 --- a/doc/diagrams/.$PRDListFlows.drawio.bkp +++ b/doc/diagrams/.$PRDListFlows.drawio.bkp @@ -1,10 +1,10 @@ - + - + - + @@ -13,7 +13,7 @@ - + @@ -23,7 +23,7 @@ - + @@ -31,37 +31,37 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -69,45 +69,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -116,10 +116,10 @@ - + - + @@ -128,16 +128,16 @@ - + - + - + - + @@ -145,10 +145,10 @@ - + - + @@ -156,25 +156,25 @@ - + - + - + - + - + - + - + @@ -182,10 +182,10 @@ - + - + @@ -195,7 +195,7 @@ - + @@ -204,16 +204,16 @@ - + - + - + - + @@ -221,13 +221,13 @@ - + - + - + @@ -236,9 +236,48 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/diagrams/.$PRDMessageFlows.drawio.bkp b/doc/diagrams/.$PRDMessageFlows.drawio.bkp index 69f0502..367112b 100644 --- a/doc/diagrams/.$PRDMessageFlows.drawio.bkp +++ b/doc/diagrams/.$PRDMessageFlows.drawio.bkp @@ -1,4 +1,4 @@ - + @@ -248,9 +248,6 @@ - - - diff --git a/doc/diagrams/.$PRDUpdateFlows.drawio.bkp b/doc/diagrams/.$PRDUpdateFlows.drawio.bkp index 43c81f3..ab6d8e8 100644 --- a/doc/diagrams/.$PRDUpdateFlows.drawio.bkp +++ b/doc/diagrams/.$PRDUpdateFlows.drawio.bkp @@ -1,9 +1,87 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -90,8 +168,10 @@ - - + + + + @@ -310,7 +390,7 @@ - + diff --git a/doc/diagrams/PRDListFlows.drawio b/doc/diagrams/PRDListFlows.drawio index 8d810c4..477696c 100644 --- a/doc/diagrams/PRDListFlows.drawio +++ b/doc/diagrams/PRDListFlows.drawio @@ -1,9 +1,48 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/diagrams/PRDListFlows.png b/doc/diagrams/PRDListFlows.png index 00f1ed5..b57d9da 100644 Binary files a/doc/diagrams/PRDListFlows.png and b/doc/diagrams/PRDListFlows.png differ diff --git a/doc/diagrams/PRDMessageFlows.drawio b/doc/diagrams/PRDMessageFlows.drawio index 367112b..a699b1d 100644 --- a/doc/diagrams/PRDMessageFlows.drawio +++ b/doc/diagrams/PRDMessageFlows.drawio @@ -1,9 +1,48 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -131,13 +170,13 @@ - + - + - + @@ -145,10 +184,10 @@ - + - + @@ -158,10 +197,10 @@ - + - + @@ -171,40 +210,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -212,13 +251,13 @@ - + - + - + @@ -228,7 +267,7 @@ - + @@ -238,7 +277,7 @@ - + diff --git a/doc/diagrams/PRDMessageFlows.png b/doc/diagrams/PRDMessageFlows.png index 95e0fe7..b101f51 100644 Binary files a/doc/diagrams/PRDMessageFlows.png and b/doc/diagrams/PRDMessageFlows.png differ diff --git a/doc/diagrams/PRDUpdateFlows.drawio b/doc/diagrams/PRDUpdateFlows.drawio index dedf6ef..9d3cb7a 100644 --- a/doc/diagrams/PRDUpdateFlows.drawio +++ b/doc/diagrams/PRDUpdateFlows.drawio @@ -1,9 +1,87 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -312,7 +390,7 @@ - + diff --git a/doc/diagrams/PRDUpdateFlows.png b/doc/diagrams/PRDUpdateFlows.png index a3c2bc8..d7c601c 100644 Binary files a/doc/diagrams/PRDUpdateFlows.png and b/doc/diagrams/PRDUpdateFlows.png differ