Bonjour les devs, je me permets un petit post technique pour préparer le programme du hackathon de la semaine prochaine 41 à Cournonsec. Je me permets également de baptiser quelques fonctions, c’est pour mieux circonscrire et vérifier si je positionne bien les choses. Mon propos est de formuler (genre user story avec critères d’acceptation) un ou plusieurs livrables en 4 jours et effectuer une recette jour 5.
- Relance de la Gtest avec les variables réelles de prod.
- Fonction sso de notre identité duniter certifiée.
#1. Quels sont les pré-requis ou inversement les points bloquants ? Indexeur opérationnel, manipulation des variables, nettoyage des arborescences pour que tous les outils aient leur 3 branches dev - test - prod (redockerisation ?), … Quelle documentation à fournir pour le smith-group ?
#2. Mon questionnement de fond porte sur l’architecture logicielle, anticipant les usages de notre identité numérique certifiée au-delà des usages stricts de notre monnaie (gestion de portefeuilles, transactions, …). Pour résumer :
- rôle sso ( “Trustin’ID” ) : accès à tout un écosystème cohérent (interopérabilité), intégré ou pas, avec notre identité certifiée duniter. Possibilité d’un usage local (hors connexion).
- rôle permissions et partages (“Trustin’Wallet”) : gestion de ses ressources (données, ressources logicielles ou matérielles) et des permissions accordées à ses contacts et groupes. Introduction de N1-N2 dans le paramétrage.
- les applis majeures que sont la gestion des portefeuilles (appelées les “clients”) et les applis “échanges”, mais aussi les applis “messagerie” intégrées ou autonomes (dans la lignée de nostr connect), les applis “vote” (garantie d’une intégrité - unicité et capacité d’anonymisation pour tous les systèmes de vote connus et à imaginer), les plugin de signatures et chiffrement (docs, media, md,..)
… qui utilisent l’agent du Trustin’Wallet.
→la user story du sprint sem41 cournonsec serait orientée sur la capacité de se loger sur les forums monnaie-libre et duniter avec notre clé duniter - sso - (peut-être une US dans un nextcloud, celui d’axiom par exemple).
→→Question d’un “Trustin’Core” : trustin-core-js
Dixit faire un module, genre sdk, sans interface ni accès réseau, qui puisse être intégré dans les lib à venir, à commencer par Ğ1-papi. Juste avec BIP39 (génération restauration) et SLIP0010 pour les dérivations déterministes à chaque rôle (sso, monnaie, signature-chiffrement, …), les primitives ED et X - 25519, did:duniter .
Positionner le moteur de consentement au-dessus, mais encore une fois comme un module au rôle d’agent, pour les applis qui se connectent n’aient aucun accès aux clés. Est-ce une couche genre daemon local, avec PAPI qui intégrerait dans la lib la discussion avec le daemon ? Positionner ucan, oidc & Cie… quand ce sera l’heure, mon propos est de démarrer sur de bonnes bases pérennes.
Donc pour commencer est-ce pertinent, et le cas échéant est-ce le bon moment (opportun), pour isoler la fonction base crypto-core de tout le reste ?
Car si c’est le cas, alors Manu pourra au premier abord être contrarié de ne pas tout mettre directement dans PAPI pour intégrer la fonction sso dans son interface Ğ1 companion. Probablement une complication superflue de l’architecture et une charge de dev supplémentaire initiale, donc objection majeure, sauf s’il y a consensus sur la pertinence à plus long terme sur une telle structure.
J’aimerais simplement anticiper sur les dettes techniques et les fâcheries sur la conduite à tenir vis-à-vis des users au moment des évolutions d’usage ultérieures.
Et ce dernier point me permet de conclure sur l’UX en posant une question simple, du point de vue user, “Ğ1Companion se connecte-t-il à Trustin’Wallet ayant une existence propre, ou Trustin’Wallet est-il intégré de façon transparente dans Ğ1Companion, ou bien Ğ1Companion est-il Trustin’Wallet” ?
RQ : La perspective plus long terme de cette réflexion est aussi - dans un registre plus stratégique de positionnement - de considérer l’enjeu d’une identité numérique fiable sans autorité centrale ni biométrie, tout autant que l’enjeu d’une création monétaire sur son propre réseau monétique. D’imaginer ainsi toute une population d’utilisateurs qui viendra avant tout pour ça, pour qui le fait de disposer d’un réseau monétique avec sa devise inédite serait un cadeau bonus, une feature parmi d’autres dans un ecosystème qui cherchera à être complet sans ignorer Gödel ,-).
[ question opérationnelle pragmatique : tester les gitlabs issues - au lieu de OpenProject ou Jira - pour directement renseigner les tickets au bon endroit (ça commence à être un peu short de préparer les EPICs pour la semaine 41), pose la question de l’arbo.
Trustin’Wallet n’est pas vraiment une appli, ce serait plutôt un “group”, du genre “trustin-itiative”, … dans lequel il y aurait le projet Trustin’ID trustin-core-js, le projet Trustin’Agent trustin-agent-daemon, le projet Trustin’Wallet trustin-wallet-user (extension web puis desktop), trustin-vote, trustin-sign (plugin pour libreoffice openoffice ..), etc…
A quel endroit je pourrais poser un premier backlog d’us pour le premier sprint sso … de la semaine prochaine ? ]