ihm_client/docs/FONCTIONNEL.md

5.0 KiB
Raw Permalink Blame History

Documentation fonctionnelle - ihm_client

Cette documentation décrit ce que fait fonctionnellement linterface ihm_client, les parcours utilisateurs, les règles de gestion et les contraintes associées. Aucun exemple de code applicatif nest inclus.

Objectif produit

  • Proposer une interface moderne pour la gestion de processus collaboratifs autour des Silent Payments.
  • Faciliter le pairing sécurisé entre appareils/utilisateurs et la gestion des transactions associées.
  • Offrir un espace unifié pour la gestion des membres, documents, signatures et échanges (chat/notifications).

Personas et rôles

  • Utilisateur standard: initie/participe à des processus, signe des documents, échange des messages.
  • Administrateur de processus: configure les rôles, vérifie les validations, déclenche des mises à jour.
  • Observateur (lecture seule): consulte les informations publiques/partagées sans intervenir.

Parcours principaux

Accueil

  • Accès rapide aux sections clés (Compte, Processus, Signature, Chat, Pairing).
  • Indicateurs dactivité: processus actifs, notifications récentes, métriques succinctes.

Pairing (mise en relation)

  • Objectif: établir une relation de confiance entre appareils via adresse Silent Payment.
  • Étapes:
    1. Saisir ou scanner ladresse SP distante (ou URL contenant sp_address).
    2. Vérifier lempreinte visuelle (emojis) dérivée de ladresse pour confirmer lidentité.
    3. Créer et confirmer le processus de pairing (flux guidé, confirmation finale).
  • Résultat: lappareil local est appairé; les échanges sécurisés sont possibles.

Wallet et relays

  • Visualiser létat du wallet (montant disponible, synchro via relays).
  • Interagir avec le réseau via relays (mise à jour des membres/états, échange de messages techniques).
  • Disposer dun mécanisme de “faucet” en environnement de test pour provisionner le wallet.

Processus

  • Créer un nouveau processus (données publiques et privées, rôles, règles de validation).
  • Mettre à jour un processus existant (évolution des états, validations, preuves).
  • Consulter lhistorique (états validés, états en attente/non committés).

Membres et rôles

  • Gérer les membres impliqués (par adresse SP).
  • Définir des rôles et règles de validation (quorum, champs soumis à contrôle, seuils).
  • Vérifier lappartenance de lutilisateur à un rôle (autorisation implicite des actions).

Documents et signatures

  • Associer des documents aux processus (hashés et stockés via mécanismes dédiés).
  • Déclencher des demandes de signature, suivre leur statut (en attente, signé, expiré).
  • Vérifier/valider les preuves (ex. Merkle) liées aux documents échangés.

Chat et notifications

  • Échanger des messages dans le contexte des processus.
  • Recevoir des notifications liées aux événements (nouvelle transaction, demande de signature, mise à jour de processus).

Règles de gestion clés

  • Pairing
    • Une empreinte visuelle (emojis) dérivée de ladresse SP aide à la confirmation utilisateur.
    • Un processus de pairing doit inclure ladresse de lappareil local.
  • Validation
    • Les règles de validation (quorum, seuils) sappliquent aux champs déclarés.
    • Une mise à jour de processus peut être refusée si les preuves/validations sont insuffisantes.
  • Données
    • Les données volumineuses (blobs) sont stockées séparément et référencées par hash.
    • Les attributs chiffrés nécessitent clés/permissions pour être déchiffrés.
  • Sécurité
    • Les échanges sont consolidés via relays; lappairage conditionne laccès aux données privées.
    • Les tokens de session sont temporaires et régénérables (Access/Refresh).

Contraintes et limites

  • Dépendance au module WASM pour les opérations de bas niveau (Silent Payments, encodages, preuves).
  • Nécessité dun ou plusieurs relays disponibles pour la synchronisation et léchange dinformations.
  • Performance dépendant du contexte (navigateur, réseau, taille des données).

Indicateurs et métriques

  • Disponibilité des relays et latence observée.
  • État de synchronisation (hauteur de bloc, mises à jour reçues).
  • Taille et temps de manipulation des documents.
  • Taux de succès des signatures et validations.

Gestion des erreurs et non-régression

  • Messages derreur explicites pour états manquants, adresses invalides, clés indisponibles, connexions relays.
  • Tests unitaires couvrant conversions (hex/blob), DOM utilitaire et tokens.
  • Stratégie de test documentée (voir docs/TESTING.md).

Confidentialité et conformité

  • Pas de stockage permanent de secrets en clair côté client.
  • Utilisation stricte de variables denvironnement pour les secrets runtime.
  • Revue régulière des dépendances et audits sécurité (voir docs/SECURITY_AUDIT.md).

Support et usage

  • Guides dinstallation et dutilisation (voir docs/INSTALLATION.md, docs/USAGE.md).
  • Référentiel contractuel des API (voir docs/API.md).
  • Intégration dans un site via iframe (voir docs/INTEGRATION_IFRAME.md).