# 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 `Champ` sont des `MessageAValider` avec `contrats_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_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 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) : ```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 d’expiration** (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. Types (userwallet) - **`DataJson`** : champs optionnels `raisons_usage_tiers`, `raisons_partage_tiers` (`RaisonsTiers[]`), `conditions_conservation` (`ConditionsConservation`). Voir `src/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)