**Motivations:** - Continue implementation of login state machine - Add new login components for collect, share and sign screens - Add utilities for login signing, validation, and publishing - Update documentation for CNIL compliance and login workflow - Add features for timeouts, backoff, and validator acceptance **Root causes:** - N/A (feature additions and improvements) **Correctifs:** - Update login state machine implementation - Update graph resolver and sync service **Evolutions:** - Add LoginCollectShare and LoginSignScreen components - Add useSignAndPostLogin hook - Add login utilities: loginSign, loginPublish, loginValidation, collectSignatures - Add sync utilities: syncUpdateGraph, syncValidate - Add validatorsAccept utility - Update App.tsx and LoginScreen.tsx - Update loginBuilder and loginStateMachine services - Add documentation for CNIL compliance, remote collection, timeouts, and validator acceptance - Update identity types **Pages affectées:** - userwallet/src/App.tsx - userwallet/src/components/LoginScreen.tsx - userwallet/src/components/LoginCollectShare.tsx (new) - userwallet/src/components/LoginSignScreen.tsx (new) - userwallet/src/hooks/useSignAndPostLogin.ts (new) - userwallet/src/services/graphResolver.ts - userwallet/src/services/loginBuilder.ts - userwallet/src/services/loginStateMachine.ts - userwallet/src/services/syncService.ts - userwallet/src/services/syncUpdateGraph.ts (new) - userwallet/src/services/syncValidate.ts (new) - userwallet/src/types/identity.ts - userwallet/src/utils/relay.ts - userwallet/src/utils/collectSignatures.ts (new) - userwallet/src/utils/loginPublish.ts (new) - userwallet/src/utils/loginSign.ts (new) - userwallet/src/utils/loginValidation.ts (new) - userwallet/src/utils/validatorsAccept.ts (new) - userwallet/docs/synthese.md - userwallet/docs/specs-champs-obligatoires-cnil.md - userwallet/features/userwallet-acceptation-version-validateurs.md (new) - userwallet/features/userwallet-dh-systematique-scan-fetch.md (new) - features/userwallet-contrat-login-reste-a-faire.md - features/userwallet-login-state-machine.md - features/userwallet-validation-conformite.md - features/userwallet-champs-obligatoires-cnil.md (new) - features/userwallet-collecte-distante-2-devices.md (new) - features/userwallet-timeouts-backoff.md (new) - mempool (submodule) - hash_list.txt - hash_list_cache.txt
3.7 KiB
3.7 KiB
Complément de specs – Champs obligatoires et attributs CNIL
Author: Équipe 4NK
Date: 2026-01-26
Référence : specs.md (Contrat, Champ, MessageBase, DataJson).
1. Champs obligatoires des contrats
Tous les contrats ont certains des champs (objets Champ) suivants. Chaque type correspond à un usage métier précis ; un contrat donné en possède un sous-ensemble selon le contexte.
| Type de Champ | Description |
|---|---|
| Partage avec les institutions | Champ dédié au partage de données avec des institutions |
| Messages au RSSI | Messages au RSSI de la société responsable du service |
| Messages au Correspondant CNIL | Messages au Correspondant CNIL de la société responsable du service |
| Messages au Responsable cybersécurité | Messages au Responsable cybersécurité au bord de la société responsable du service |
| Messages de support infogérant | Messages de support de l’infogérant du service |
| Messages de support administrateur système | Messages de support de l’administrateur système du service |
| Messages de support niveau 1 | Messages de support de niveau 1 du service |
| Messages de support niveau 2 | Messages de support de niveau 2 du service |
| Messages de support niveau 3 | Messages de support de niveau 3 du service |
- Les
Champsont desMessageAValideraveccontrats_parents_uuid(au moins 1). - L’identification du type (partage, RSSI, CNIL, cybersécurité, support N1/N2/N3, etc.) se fait via
types.types_names_chiffres/types_uuidou via des métadonnées dansdatajson, selon les conventions du catalogue.
2. Attributs CNIL dans datajson
Pour les objets concernés (ex. contrats, champs), la partie datajson peut contenir des attributs CNIL supplémentaires. Ceux-ci sont optionnels au sens du schéma de base mais requis pour la conformité CNIL lorsqu’ils s’appliquent.
2.1 Usage et partage avec les tiers
- Raisons de l’usage avec les tiers et description du tiers
Tableau de couples[raisons, tiers]: pour chaque usage avec un tiers, les raisons et la description du tiers. - Raisons du partage avec les tiers et description du tiers
Tableau de couples[raisons, tiers]: pour chaque partage avec un tiers, les raisons et la description du tiers.
Structure suggérée (à préciser dans le catalogue) :
{
"raisons_usage_tiers": [
{ "raisons": ["…"], "tiers": "…" }
],
"raisons_partage_tiers": [
{ "raisons": ["…"], "tiers": "…" }
]
}
2.2 Conditions de conservation
- Conditions de conservation
Objet JSON contenant au moins le délai d’expiration (durée de conservation des données).
Exemple :
{
"conditions_conservation": {
"delai_expiration": "P1Y",
"unite": "annees"
}
}
(P1Y : ISO 8601 duration, ou équivalent selon le catalogue.)
3. Synthèse
| Domaine | Contenu |
|---|---|
| Champs obligatoires | Sous-ensemble des 9 types (partage, RSSI, CNIL, cybersécurité, support infogérant / admin / N1 / N2 / N3) selon le contrat |
datajson CNIL |
raisons_usage_tiers, raisons_partage_tiers (tableaux [raisons, tiers]) ; conditions_conservation (JSON avec au moins delai_expiration) |
4. Types (userwallet)
DataJson: champs optionnelsraisons_usage_tiers,raisons_partage_tiers(RaisonsTiers[]),conditions_conservation(ConditionsConservation). Voirsrc/types/message.ts.
5. Références
userwallet/docs/specs.md(MessageBase, DataJson, Champ, Contrat)userwallet/docs/specs-champs-obligatoires-cnil.md(ce document)userwallet/src/types/message.ts(DataJson, RaisonsTiers, ConditionsConservation)userwallet/src/types/contract.ts(Champ)