anchorage_layer_simple/userwallet/docs/specs-champs-obligatoires-cnil.md
ncantu c3c11f0ef0 Update userwallet components, services and documentation
**Motivations:**
- Add new features and fixes for userwallet application
- Update documentation for pairing, login state machine, and sync
- Add new utilities for bloom filters, nonce store, and contract versioning
- Fix mempool websocket offline issues

**Root causes:**
- N/A (feature additions and improvements)

**Correctifs:**
- Fix mempool websocket offline handling
- Update ESLint configuration

**Evolutions:**
- Add login state machine service and hook
- Add sync loop service
- Add bloom filter utilities for anti-replay and state visibility
- Add nonce store and contract version utilities
- Update pairing confirmation and graph resolver services
- Add new documentation for features and fixes
- Update userwallet components (LoginScreen, SyncScreen)
- Update types for contract, identity, and messages

**Pages affectées:**
- userwallet/src/components/LoginScreen.tsx
- userwallet/src/components/SyncScreen.tsx
- userwallet/src/hooks/useChannel.ts
- userwallet/src/hooks/useLoginStateMachine.ts (new)
- userwallet/src/services/graphResolver.ts
- userwallet/src/services/pairingConfirm.ts
- userwallet/src/services/syncService.ts
- userwallet/src/services/syncLoop.ts (new)
- userwallet/src/services/loginStateMachine.ts (new)
- userwallet/src/types/contract.ts
- userwallet/src/types/identity.ts
- userwallet/src/types/message.ts
- userwallet/src/utils/canonical.ts
- userwallet/src/utils/identity.ts
- userwallet/src/utils/indexedDbStorage.ts
- userwallet/src/utils/relay.ts
- userwallet/src/utils/verification.ts
- userwallet/src/utils/bloom.ts (new)
- userwallet/src/utils/contractVersion.ts (new)
- userwallet/src/utils/nonceStore.ts (new)
- userwallet/eslint.config.mjs
- userwallet/package.json
- userwallet/package-lock.json
- userwallet/docs/synthese.md
- userwallet/docs/specs-champs-obligatoires-cnil.md (new)
- api-relay/README.md
- features/userwallet-pairing-words-only-finalise.md
- features/userwallet-anti-rejeu-etats-visibles-bloom.md (new)
- features/userwallet-bloom-usage-sync.md (new)
- features/userwallet-contrat-login-reste-a-faire.md (new)
- features/userwallet-ecrans-login-a-valider.md (new)
- features/userwallet-eslint-fix.md (new)
- features/userwallet-login-state-machine.md (new)
- features/userwallet-validation-conformite.md (new)
- fixKnowledge/mempool-websocket-offline-fix.md (new)
- mempool (submodule)
- hash_list.txt
- hash_list_cache.txt
2026-01-26 14:00:32 +01:00

89 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 linfogérant du service |
| Messages de support administrateur système | Messages de support de ladministrateur 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 `Champ` sont des `MessageAValider` avec `contrats_parents_uuid` (au moins 1).
- Lidentification du type (partage, RSSI, CNIL, cybersécurité, support N1/N2/N3, etc.) se fait via `types.types_names_chiffres` / `types_uuid` ou via des métadonnées dans `datajson`, 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 lorsquils sappliquent.
### 2.1 Usage et partage avec les tiers
- **Raisons de lusage 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) :
```json
{
"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 dexpiration** (durée de conservation des données).
Exemple :
```json
{
"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. Références
- `userwallet/docs/specs.md` (MessageBase, DataJson, Champ, Contrat)
- `userwallet/src/types/message.ts` (DataJson)
- `userwallet/src/types/contract.ts` (Champ)